Y.Xml renamed to Y.XmlElement

This commit is contained in:
Kevin Jahns 2017-08-25 20:35:06 +02:00
parent 5f29724578
commit 0ddf3bf742
4 changed files with 39 additions and 7 deletions

View File

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
</head>
<!-- jquery is not required for y-xml. It is just here for convenience, and to test batch operations. -->
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="../yjs-dist.js"></script>
<script src="./index.js"></script>
</head>
<body contenteditable="true">
</body>
</html>

View File

@ -0,0 +1,21 @@
/* global Y */
// initialize a shared object. This function call returns a promise!
Y({
db: {
name: 'memory'
},
connector: {
name: 'websockets-client',
// url: 'http://127.0.0.1:1234',
url: 'http://192.168.178.81:1234',
room: 'html-editor-example6'
},
share: {
xml: 'XmlFragment()' // y.share.xml is of type Y.Xml with tagname "p"
}
}).then(function (y) {
window.yXml = y
// Bind children of XmlFragment to the document.body
window.yXml.share.xml.bindToDom(document.body)
})

View File

@ -111,7 +111,7 @@ test('element insert (y -> dom)', async function xml5 (t) {
var { users, xml0 } = await initArrays(t, { users: 3 }) var { users, xml0 } = await initArrays(t, { users: 3 })
let dom0 = xml0.getDom() let dom0 = xml0.getDom()
xml0.insert(0, [Y.XmlText('some text')]) xml0.insert(0, [Y.XmlText('some text')])
xml0.insert(1, [Y.Xml('p')]) xml0.insert(1, [Y.XmlElement('p')])
t.assert(dom0.childNodes[0].textContent === 'some text', 'Retrieve Text node') t.assert(dom0.childNodes[0].textContent === 'some text', 'Retrieve Text node')
t.assert(dom0.childNodes[1].nodeName === 'P', 'Retrieve Element node') t.assert(dom0.childNodes[1].nodeName === 'P', 'Retrieve Element node')
await compareUsers(t, users) await compareUsers(t, users)
@ -132,7 +132,7 @@ test('y on insert, then delete (dom -> y)', async function xml6 (t) {
test('y on insert, then delete (y -> dom)', async function xml7 (t) { test('y on insert, then delete (y -> dom)', async function xml7 (t) {
var { users, xml0 } = await initArrays(t, { users: 3 }) var { users, xml0 } = await initArrays(t, { users: 3 })
let dom0 = xml0.getDom() let dom0 = xml0.getDom()
xml0.insert(0, [Y.Xml('p')]) xml0.insert(0, [Y.XmlElement('p')])
t.assert(dom0.childNodes[0].nodeName === 'P', 'Get inserted element from dom') t.assert(dom0.childNodes[0].nodeName === 'P', 'Get inserted element from dom')
xml0.delete(0, 1) xml0.delete(0, 1)
t.assert(dom0.childNodes.length === 0, '#childNodes is empty after delete') t.assert(dom0.childNodes.length === 0, '#childNodes is empty after delete')
@ -169,7 +169,7 @@ test('delete consecutive (2) (Text)', async function xml9 (t) {
test('delete consecutive (1) (Element)', async function xml10 (t) { test('delete consecutive (1) (Element)', async function xml10 (t) {
var { users, xml0 } = await initArrays(t, { users: 3 }) var { users, xml0 } = await initArrays(t, { users: 3 })
let dom0 = xml0.getDom() let dom0 = xml0.getDom()
xml0.insert(0, [Y.Xml('A'), Y.Xml('B'), Y.Xml('C')]) xml0.insert(0, [Y.XmlElement('A'), Y.XmlElement('B'), Y.XmlElement('C')])
await wait() await wait()
xml0.delete(1, 2) xml0.delete(1, 2)
await wait() await wait()
@ -182,7 +182,7 @@ test('delete consecutive (1) (Element)', async function xml10 (t) {
test('delete consecutive (2) (Element)', async function xml11 (t) { test('delete consecutive (2) (Element)', async function xml11 (t) {
var { users, xml0 } = await initArrays(t, { users: 3 }) var { users, xml0 } = await initArrays(t, { users: 3 })
let dom0 = xml0.getDom() let dom0 = xml0.getDom()
xml0.insert(0, [Y.Xml('A'), Y.Xml('B'), Y.Xml('C')]) xml0.insert(0, [Y.XmlElement('A'), Y.XmlElement('B'), Y.XmlElement('C')])
await wait() await wait()
xml0.delete(0, 1) xml0.delete(0, 1)
xml0.delete(1, 1) xml0.delete(1, 1)
@ -198,8 +198,8 @@ test('Receive a bunch of elements (with disconnect)', async function xml12 (t) {
let dom0 = xml0.getDom() let dom0 = xml0.getDom()
let dom1 = xml1.getDom() let dom1 = xml1.getDom()
users[1].disconnect() users[1].disconnect()
xml0.insert(0, [Y.Xml('A'), Y.Xml('B'), Y.Xml('C')]) xml0.insert(0, [Y.XmlElement('A'), Y.XmlElement('B'), Y.XmlElement('C')])
xml0.insert(0, [Y.Xml('X'), Y.Xml('Y'), Y.Xml('Z')]) xml0.insert(0, [Y.XmlElement('X'), Y.XmlElement('Y'), Y.XmlElement('Z')])
await users[1].reconnect() await users[1].reconnect()
await flushAll(t, users) await flushAll(t, users)
t.assert(xml0.length === 6, 'check length (y)') t.assert(xml0.length === 6, 'check length (y)')

View File

@ -176,7 +176,7 @@ export async function initArrays (t, opts) {
var result = { var result = {
users: [] users: []
} }
var share = Object.assign({ flushHelper: 'Map', array: 'Array', map: 'Map', xml: 'Xml("div")' }, opts.share) var share = Object.assign({ flushHelper: 'Map', array: 'Array', map: 'Map', xml: 'XmlElement("div")' }, opts.share)
var chance = opts.chance || new Chance(t.getSeed() * 1000000000) var chance = opts.chance || new Chance(t.getSeed() * 1000000000)
var conn = Object.assign({ room: 'debugging_' + t.name, generateUserId: false, testContext: t, chance }, connector) var conn = Object.assign({ room: 'debugging_' + t.name, generateUserId: false, testContext: t, chance }, connector)
for (let i = 0; i < opts.users; i++) { for (let i = 0; i < opts.users; i++) {