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
|
||||
@ops = 0 # number of operations (used with @time)
|
||||
@time_now = 0 # current time
|
||||
@max_depth = 4
|
||||
@max_depth = 10
|
||||
|
||||
@debug = false
|
||||
|
||||
@ -28,6 +28,9 @@ module.exports = class Test
|
||||
for gf in @getGeneratingFunctions(0)
|
||||
if not (gf.types? and gf.f?)
|
||||
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: ()->
|
||||
@users = []
|
||||
|
@ -12,6 +12,7 @@ Y.Test = require "../../y-test/lib/y-test.coffee"
|
||||
|
||||
Y.List = require "../lib/Types/List"
|
||||
Y.Xml = require "../lib/Types/Xml"
|
||||
Y.Text = require "../lib/Types/Text"
|
||||
|
||||
Test = require "./TestSuite"
|
||||
|
||||
@ -36,11 +37,10 @@ class XmlTest extends Test
|
||||
super
|
||||
|
||||
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
|
||||
root
|
||||
else # take child
|
||||
depth--
|
||||
elems = null
|
||||
if root._name is "Xml"
|
||||
elems = root.getChildren()
|
||||
@ -53,10 +53,63 @@ class XmlTest extends Test
|
||||
root
|
||||
else
|
||||
p = elems[_.random(0, elems.length-1)]
|
||||
@getRandomRoot user_num, p, depth
|
||||
@getRandomRoot user_num, p, depth--
|
||||
|
||||
getGeneratingFunctions: (user_num)->
|
||||
that = @
|
||||
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", ->
|
||||
@ -71,14 +124,24 @@ describe "Y-Xml", ->
|
||||
@u3 = @users[3].val("xml")
|
||||
done()
|
||||
|
||||
###
|
||||
it "can handle many engines, many operations, concurrently (random)", ->
|
||||
console.log "" # TODO
|
||||
@yTest.run()
|
||||
console.log(@yTest.users[0].val("xml")+"")
|
||||
|
||||
it "has a working test suite", ->
|
||||
@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", ->
|
||||
@u1.attr("stuff", "true")
|
||||
|
Loading…
x
Reference in New Issue
Block a user