added random tests for xml test suite
This commit is contained in:
parent
82f11c421f
commit
014495febd
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -20,7 +20,7 @@ module.exports = class Test
|
|||||||
@time = 0 # denotes to the time when run was started
|
@time = 0 # denotes to the time when run was started
|
||||||
@ops = 0 # number of operations (used with @time)
|
@ops = 0 # number of operations (used with @time)
|
||||||
@time_now = 0 # current time
|
@time_now = 0 # current time
|
||||||
@max_depth = 4
|
@max_depth = 10
|
||||||
|
|
||||||
@debug = false
|
@debug = false
|
||||||
|
|
||||||
@ -28,6 +28,9 @@ module.exports = class Test
|
|||||||
for gf in @getGeneratingFunctions(0)
|
for gf in @getGeneratingFunctions(0)
|
||||||
if not (gf.types? and gf.f?)
|
if not (gf.types? and gf.f?)
|
||||||
throw new Error "Generating Functions are not initialized properly!"
|
throw new Error "Generating Functions are not initialized properly!"
|
||||||
|
for t in gf.types
|
||||||
|
if not t?
|
||||||
|
throw new Error "You havent includedt this type in Y (do require 'y-whatever')"
|
||||||
|
|
||||||
reinitialize: ()->
|
reinitialize: ()->
|
||||||
@users = []
|
@users = []
|
||||||
|
@ -12,6 +12,7 @@ Y.Test = require "../../y-test/lib/y-test.coffee"
|
|||||||
|
|
||||||
Y.List = require "../lib/Types/List"
|
Y.List = require "../lib/Types/List"
|
||||||
Y.Xml = require "../lib/Types/Xml"
|
Y.Xml = require "../lib/Types/Xml"
|
||||||
|
Y.Text = require "../lib/Types/Text"
|
||||||
|
|
||||||
Test = require "./TestSuite"
|
Test = require "./TestSuite"
|
||||||
|
|
||||||
@ -36,11 +37,10 @@ class XmlTest extends Test
|
|||||||
super
|
super
|
||||||
|
|
||||||
getRandomRoot: (user_num, root, depth = @max_depth)->
|
getRandomRoot: (user_num, root, depth = @max_depth)->
|
||||||
root ?= @users[user_num]
|
root ?= @users[user_num].val("xml")
|
||||||
if depth is 0 or _.random(0,1) is 1 # take root
|
if depth is 0 or _.random(0,1) is 1 # take root
|
||||||
root
|
root
|
||||||
else # take child
|
else # take child
|
||||||
depth--
|
|
||||||
elems = null
|
elems = null
|
||||||
if root._name is "Xml"
|
if root._name is "Xml"
|
||||||
elems = root.getChildren()
|
elems = root.getChildren()
|
||||||
@ -53,10 +53,63 @@ class XmlTest extends Test
|
|||||||
root
|
root
|
||||||
else
|
else
|
||||||
p = elems[_.random(0, elems.length-1)]
|
p = elems[_.random(0, elems.length-1)]
|
||||||
@getRandomRoot user_num, p, depth
|
@getRandomRoot user_num, p, depth--
|
||||||
|
|
||||||
getGeneratingFunctions: (user_num)->
|
getGeneratingFunctions: (user_num)->
|
||||||
|
that = @
|
||||||
super(user_num).concat [
|
super(user_num).concat [
|
||||||
|
f : (y)=> # set Attribute
|
||||||
|
y.attr(that.getRandomKey(), that.getRandomText())
|
||||||
|
types: [Y.Xml]
|
||||||
|
,
|
||||||
|
f : (y)-> # DELETE Attribute
|
||||||
|
keys = Object.keys(y.attr())
|
||||||
|
y.removeAttr(keys[_.random(0,keys.length-1)])
|
||||||
|
types : [Y.Xml]
|
||||||
|
,
|
||||||
|
f : (y)-> # Add Class
|
||||||
|
y.addClass(that.getRandomKey())
|
||||||
|
types : [Y.Xml]
|
||||||
|
,
|
||||||
|
f : (y)-> # toggleClass
|
||||||
|
y.toggleClass(that.getRandomKey())
|
||||||
|
types : [Y.Xml]
|
||||||
|
,
|
||||||
|
f : (y)-> # Remove Class
|
||||||
|
keys = y.attr("class").split(" ")
|
||||||
|
y.removeClass(keys[_.random(0,keys.length-1)])
|
||||||
|
types : [Y.Xml]
|
||||||
|
,
|
||||||
|
f : (y)-> # append XML
|
||||||
|
child = new Y.Xml(that.getRandomKey())
|
||||||
|
y.append(child)
|
||||||
|
types : [Y.Xml]
|
||||||
|
,
|
||||||
|
f : (y)-> # pepend XML
|
||||||
|
child = new Y.Xml(that.getRandomKey())
|
||||||
|
y.prepend child
|
||||||
|
types : [Y.Xml]
|
||||||
|
,
|
||||||
|
f : (y)-> # after XML
|
||||||
|
if y.getParent()?
|
||||||
|
child = new Y.Xml(that.getRandomKey())
|
||||||
|
y.after child
|
||||||
|
types : [Y.Xml]
|
||||||
|
,
|
||||||
|
f : (y)-> # before XML
|
||||||
|
if y.getParent()?
|
||||||
|
child = new Y.Xml(that.getRandomKey())
|
||||||
|
y.before child
|
||||||
|
types : [Y.Xml]
|
||||||
|
,
|
||||||
|
f : (y)-> # empty
|
||||||
|
y.empty()
|
||||||
|
types : [Y.Xml]
|
||||||
|
,
|
||||||
|
f : (y)-> # remove
|
||||||
|
if y.getParent()?
|
||||||
|
y.remove()
|
||||||
|
types : [Y.Xml]
|
||||||
]
|
]
|
||||||
|
|
||||||
describe "Y-Xml", ->
|
describe "Y-Xml", ->
|
||||||
@ -71,14 +124,24 @@ describe "Y-Xml", ->
|
|||||||
@u3 = @users[3].val("xml")
|
@u3 = @users[3].val("xml")
|
||||||
done()
|
done()
|
||||||
|
|
||||||
###
|
|
||||||
it "can handle many engines, many operations, concurrently (random)", ->
|
it "can handle many engines, many operations, concurrently (random)", ->
|
||||||
console.log "" # TODO
|
console.log "" # TODO
|
||||||
@yTest.run()
|
@yTest.run()
|
||||||
|
console.log(@yTest.users[0].val("xml")+"")
|
||||||
|
|
||||||
it "has a working test suite", ->
|
it "has a working test suite", ->
|
||||||
@yTest.compareAll()
|
@yTest.compareAll()
|
||||||
###
|
|
||||||
|
it "handles double-late-join", ->
|
||||||
|
test = new XmlTest("double")
|
||||||
|
test.run()
|
||||||
|
@yTest.run()
|
||||||
|
u1 = test.users[0]
|
||||||
|
u2 = @yTest.users[1]
|
||||||
|
ops1 = u1._model.HB._encode()
|
||||||
|
ops2 = u2._model.HB._encode()
|
||||||
|
u1._model.engine.applyOp ops2, true
|
||||||
|
u2._model.engine.applyOp ops1, true
|
||||||
|
|
||||||
it "Create Xml Element", ->
|
it "Create Xml Element", ->
|
||||||
@u1.attr("stuff", "true")
|
@u1.attr("stuff", "true")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user