chai = require('chai') expect = chai.expect should = chai.should() sinon = require('sinon') sinonChai = require('sinon-chai') _ = require("underscore") $ = require("jquery") document?.$ = $ # for browser require 'coffee-errors' chai.use(sinonChai) Y = require "../lib/index" Connector_uninitialized = require "../lib/Connectors/TestConnector" Test = require "./TestSuite" class XmlTest extends Test type: "XmlTest" makeNewUser: (user, conn)-> super new Y.XmlFramework user, conn getRandomRoot: (user_num)-> @users[user_num].getSharedObject() getContent: (user_num)-> @users[user_num].val() describe "XmlFramework", -> beforeEach (done)-> @timeout 50000 @yTest = new XmlTest() ### @users = @yTest.users ### @test_user = @yTest.makeNewUser 0, (Connector_uninitialized []) @test_user2 = @yTest.makeNewUser 1, (Connector_uninitialized []) @$dom = $("#test_dom") @dom = @$dom[0] @test_user.val(@dom) @check = ()=> dom_ = @test_user.val(true) expect(dom_.outerHTML).to.equal(@dom.outerHTML) # now test if other collaborators can parse the HB and result in the same content hb = @test_user.HB._encode() @test_user2.engine.applyOps(hb) dom2 = @test_user2.val() expect(dom_.outerHTML).to.equal(dom2.outerHTML) done() it "can transform to a new real Dom element", -> dom_ = @test_user.val(true) expect(dom_ isnt @dom).to.be.true @check() it "supports dom.insertBefore", -> newdom = $("

dtrn

")[0] newdom2 = $("

dtrn2

")[0] n = $("#removeme")[0] @dom.insertBefore(newdom, null) @dom.insertBefore(newdom2, n) @check() it "supports dom.appendChild", -> newdom = $("

dtrn

")[0] @dom.appendChild(newdom) @check() it "supports dom.setAttribute", -> @dom.setAttribute("test_attribute", "newVal") @check() it "supports dom.removeAttribute", -> @dom.removeAttribute("test_attribute") @check() it "supports dom.removeChild", -> @dom.removeChild($("#removeme")[0]) expect($("#removeme").length).to.equal(0) @check() it "supports dom.replaceChild", -> newdom = $("

replaced

")[0] replace = $("#replaceme")[0] @dom.replaceChild(newdom,replace) expect($("#replaceme").length).to.equal(0) @check() it "supports dom.classList.add", -> @dom.classList.add "classy" @check() it "supports dom.textcontent", -> #TODO!!!! @dom.classList.add "classy" @check() it "supports jquery.addClass", -> @$dom.addClass("testy") @check() it "supports jquery.after", -> d = $("#test_dom p") d.after("
after
") @check() it "supports jquery.append", -> d = $("#test_dom p") d.after("appended") @check() it "supports jquery.appendTo", -> $("appendedTo").appendTo("#test_dom p") @check() it "supports jquery.before", -> d = $("#test_dom p") d.before("
before
") @check() it "supports jquery.detach", -> d = $(".inserted_after") d.detach() @check() it "supports jquery.empty", -> d = $("#test_dom p") d.empty() @check() it "supports jquery.insertAfter", -> $("

after span

").insertAfter(".span_element") @check() it "supports jquery.insertBefore", -> $("

before span

").insertBefore(".span_element") @check() it "supports jquery.prepend", -> d = $("#test_dom div") d.prepend("

prepended

") @check() it "supports jquery.prependTo", -> $("

prepended to

").prependTo("#test_dom div") @check() it "supports jquery.remove", -> d = $("#test_dom b") d.remove() @check() it "supports jquery.removeAttr", -> d = $(".attr_node") d.removeAttr("attwo") @check() it "supports jquery.removeClass", -> d = $(".attr_node") d.removeClass("sudo") @check() it "supports jquery.attr", -> d = $(".attr_node") d.attr("atone", true) @check() it "supports jquery.replaceAll", -> $("New span content ").replaceAll("#test_dom div") @check() it "supports jquery.replaceWith", -> d = $("#test_dom span") d.replaceWith("
me is div again
") @check()