Finished support for new connector type
This commit is contained in:
@@ -8,7 +8,7 @@ _ = require("underscore")
|
||||
chai.use(sinonChai)
|
||||
|
||||
Y = require "../lib/index"
|
||||
Connector_uninitialized = require "../lib/Connectors/TestConnector"
|
||||
Connector = require "../bower_components/connector/lib/test-connector/test-connector.coffee"
|
||||
|
||||
Test = require "./TestSuite"
|
||||
|
||||
@@ -67,7 +67,7 @@ describe "JsonFramework", ->
|
||||
@yTest = new JsonTest()
|
||||
@users = @yTest.users
|
||||
|
||||
@test_user = @yTest.makeNewUser 0, (Connector_uninitialized [])
|
||||
@test_user = @yTest.makeNewUser 0, (new Connector 0, [])
|
||||
done()
|
||||
|
||||
it "can handle many engines, many operations, concurrently (random)", ->
|
||||
|
||||
@@ -8,13 +8,13 @@ _ = require("underscore")
|
||||
chai.use(sinonChai)
|
||||
|
||||
Y = require "../lib/index"
|
||||
Connector_uninitialized = require "../lib/Connectors/TestConnector"
|
||||
Connector = require "../bower_components/connector/lib/test-connector/test-connector.coffee"
|
||||
|
||||
module.exports = class Test
|
||||
constructor: (@name_suffix = "")->
|
||||
@number_of_test_cases_multiplier = 1
|
||||
@repeat_this = 1 * @number_of_test_cases_multiplier
|
||||
@doSomething_amount = 100 + @number_of_test_cases_multiplier
|
||||
@doSomething_amount = 400 + @number_of_test_cases_multiplier
|
||||
@number_of_engines = 5 + @number_of_test_cases_multiplier - 1
|
||||
|
||||
@time = 0
|
||||
@@ -27,9 +27,11 @@ module.exports = class Test
|
||||
|
||||
reinitialize: ()->
|
||||
@users = []
|
||||
@Connector = Connector_uninitialized @users
|
||||
for i in [0...@number_of_engines]
|
||||
u = @makeNewUser (i+@name_suffix), @Connector
|
||||
connector = new Connector i
|
||||
if @users.length > 0
|
||||
connector.join @users[0].connector
|
||||
u = @makeNewUser (i+@name_suffix), connector
|
||||
@users.push u
|
||||
#@users[0].val('name',"i")
|
||||
@flushAll()
|
||||
@@ -198,7 +200,7 @@ module.exports = class Test
|
||||
|
||||
testHBencoding: ()->
|
||||
# in case of JsonFramework, every user will create its JSON first! therefore, the testusers id must be small than all the others (see InsertType)
|
||||
@users[@users.length] = @makeNewUser (-1), (Connector_uninitialized [])
|
||||
@users[@users.length] = @makeNewUser (-1), (new Connector (-1), [])
|
||||
@users[@users.length-1].engine.applyOps @users[0].HB._encode()
|
||||
|
||||
#if @getContent(@users.length-1) isnt @getContent(0)
|
||||
|
||||
@@ -8,7 +8,7 @@ _ = require("underscore")
|
||||
chai.use(sinonChai)
|
||||
|
||||
Y = require "../lib/index"
|
||||
Connector_uninitialized = require "../lib/Connectors/TestConnector"
|
||||
Connector = require "../bower_components/connector/lib/test-connector/test-connector.coffee"
|
||||
|
||||
Test = require "./TestSuite"
|
||||
class TextTest extends Test
|
||||
@@ -29,43 +29,20 @@ describe "TextFramework", ->
|
||||
@timeout 50000
|
||||
@yTest = new TextTest()
|
||||
@users = @yTest.users
|
||||
|
||||
@test_user = @yTest.makeNewUser 0, (Connector_uninitialized [])
|
||||
test_user_connector = new Connector 'test_user'
|
||||
@test_user = @yTest.makeNewUser 'test_user', test_user_connector
|
||||
test_user_connector.join @users[0].connector
|
||||
done()
|
||||
|
||||
|
||||
it "simple multi-char insert", ->
|
||||
u = @yTest.getSomeUser()
|
||||
u = @yTest.users[0]
|
||||
u.insertText 0, "abc"
|
||||
u = @yTest.users[1]
|
||||
u.insertText 0, "xyz"
|
||||
@yTest.compareAll()
|
||||
expect(u.val()).to.equal("abc")
|
||||
|
||||
number_of_concurrent_operations = 100000
|
||||
it "concurrent against #{number_of_concurrent_operations}", ->
|
||||
a = @yTest.users[0]
|
||||
b = @yTest.users[1]
|
||||
str = ""
|
||||
for i in [0...number_of_concurrent_operations]
|
||||
str += "a"
|
||||
|
||||
countTime = (name, task)->
|
||||
start = (new Date()).getTime()
|
||||
task()
|
||||
console.log "Time needed to complete task '#{name}': #{(new Date().getTime())-start}"
|
||||
|
||||
countTime "insert #{number_of_concurrent_operations} characters", ()->
|
||||
a.insertText 0, str
|
||||
|
||||
b.insertText 0, "b"
|
||||
b_hb = b.HB._encode()
|
||||
b.engine.applyOps a.HB._encode()
|
||||
countTime "transform one operation against #{number_of_concurrent_operations} operations", ()->
|
||||
a.engine.applyOps b_hb
|
||||
|
||||
console.log a.val()
|
||||
expect(a.val()).to.equal(b.val())
|
||||
expect(u.val()).to.equal("abcxyz")
|
||||
|
||||
it "can handle many engines, many operations, concurrently (random)", ->
|
||||
@yTest.run()
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ require 'coffee-errors'
|
||||
chai.use(sinonChai)
|
||||
|
||||
Y = require "../lib/index"
|
||||
Connector_uninitialized = require "../lib/Connectors/TestConnector"
|
||||
Connector = require "../bower_components/connector/lib/test-connector/test-connector.coffee"
|
||||
|
||||
Test = require "./TestSuite"
|
||||
class XmlTest extends Test
|
||||
@@ -37,7 +37,7 @@ describe "XmlFramework", ->
|
||||
@users = @yTest.users
|
||||
###
|
||||
test_users = []
|
||||
connector = (Connector_uninitialized test_users)
|
||||
connector = (new Connector 0, test_users)
|
||||
@test_user = @yTest.makeNewUser 0, connector
|
||||
test_users.push @test_user
|
||||
# test_user_listen listens to the actions of test_user. He will update his dom when he receives from test_user.
|
||||
|
||||
Reference in New Issue
Block a user