[Xmpp4js-commit] SF.net SVN: xmpp4js: [694] branches/xml4script-port/trunk/src
Status: Beta
Brought to you by:
h-iverson
From: <h-i...@us...> - 2008-02-23 06:39:34
|
Revision: 694 http://xmpp4js.svn.sourceforge.net/xmpp4js/?rev=694&view=rev Author: h-iverson Date: 2008-02-22 22:39:38 -0800 (Fri, 22 Feb 2008) Log Message: ----------- merged in changes from trunk Modified Paths: -------------- branches/xml4script-port/trunk/src/assembler/xmpp4js.xml branches/xml4script-port/trunk/src/main/javascript/transport/BOSH.js branches/xml4script-port/trunk/src/test/javascript/common-test-library.js Added Paths: ----------- branches/xml4script-port/trunk/src/test/javascript/BOSHTransportTest.html Removed Paths: ------------- branches/xml4script-port/trunk/src/test/javascript/BoundRosterTreeTest.html branches/xml4script-port/trunk/src/test/javascript/ChatRendererTest.html branches/xml4script-port/trunk/src/test/javascript/RosterTreeTest.html branches/xml4script-port/trunk/src/test/javascript/broken/BOSHTransportTest.html Modified: branches/xml4script-port/trunk/src/assembler/xmpp4js.xml =================================================================== --- branches/xml4script-port/trunk/src/assembler/xmpp4js.xml 2008-02-23 06:39:31 UTC (rev 693) +++ branches/xml4script-port/trunk/src/assembler/xmpp4js.xml 2008-02-23 06:39:38 UTC (rev 694) @@ -78,10 +78,9 @@ <include>muc/ext/**.js</include> <include>ext/**.js</include> - <include>gui/**.js</include> <include>workflow/**.js</include> </includes> </script> </scripts> -</assembler> \ No newline at end of file +</assembler> Modified: branches/xml4script-port/trunk/src/main/javascript/transport/BOSH.js =================================================================== --- branches/xml4script-port/trunk/src/main/javascript/transport/BOSH.js 2008-02-23 06:39:31 UTC (rev 693) +++ branches/xml4script-port/trunk/src/main/javascript/transport/BOSH.js 2008-02-23 06:39:38 UTC (rev 694) @@ -167,7 +167,18 @@ */ recv : true, + /** + * @event write + * @param {DomElement} the body element of the node about to be written. + * + * A packet node is about to be written. It includes all frame data, but + * the event is fired just before the open request count is incremented. + */ + write : true, + + + /** * @event error * @param {DomElement} the body element of the node received. * @@ -346,6 +357,8 @@ var xml = packetNode.toString(); + this.fireEvent( "write", packetNode ); + this.openRequestCount++; this.xhr.request({ @@ -405,6 +418,8 @@ var condition = null; if( packetNode != null ) { condition = packetNode.getAttribute( "condition" ).toString(); + } else if( !response.status ) { + condition = "undefined-condition"; } else if( response.status != 200 ){ condition = "status."+response.status; } else { Copied: branches/xml4script-port/trunk/src/test/javascript/BOSHTransportTest.html (from rev 692, trunk/src/test/javascript/BOSHTransportTest.html) =================================================================== --- branches/xml4script-port/trunk/src/test/javascript/BOSHTransportTest.html (rev 0) +++ branches/xml4script-port/trunk/src/test/javascript/BOSHTransportTest.html 2008-02-23 06:39:38 UTC (rev 694) @@ -0,0 +1,126 @@ +<html> + <head> + <title>JSUnit - RosterWindowTest</title> + <script language="javascript" src="app/jsUnitCore.js"></script> + + <script type="text/javascript" src="includes.js"></script> + <script type="text/javascript" src="common-test-library.js"></script> + + </head> + <body> + <script type="text/javascript"> + + + + +var bosh; + +function setUp() { + bosh = new MockBOSHTransport({ + domain: "test.com" + }); +} +function tearDown() { + bosh = null; +} + +function testBeginSession() { + // setup variable to be caught on tx + var txPacket = undefined; + + // create listener to catch outgoing packet + bosh.on( "write", function(packetNode) { + txPacket = packetNode; + }); + + bosh.beginSession(); + + // make sure that txPacket is an Element + assertNotUndefined( "txPacket was empty", txPacket ); + assertTrue( "txPacket was not an element.", txPacket instanceof Element ); + + // make sure we are adding attributes to raw packets + assertEquals( "txPacket did not have correct wait", bosh.wait, txPacket.getAttribute( "wait" ) ); + assertEquals( "txPacket did not have correct to", bosh.domain, txPacket.getAttribute( "to" ) ); + + assertEquals( "txPacket did not have correct BOSH version", "1.6", txPacket.getAttribute( "ver" ) ); + assertEquals( "txPacket did not have correct xmpp version", "1.0", txPacket.getAttribute( "xmpp:version" ) ); + + assertTrue( "txPacket did not have a route", txPacket.hasAttribute( "route" ) ); + assertTrue( "txPacket does not have a rid", txPacket.hasAttribute( "rid" ) ); + assertFalse( "txPacket has a sid", txPacket.hasAttribute( "sid" ) ); +} + +function testWriteRaw() { + + var packetHelper = new Xmpp4Js.Packet.PacketHelper(); + + // create raw packet with IQ element + var packet = packetHelper.createPacket(); + var iq = packetHelper.createIQ( "te...@te...", "set", "jabber:iq:roster" ); + + packet.appendChild( iq.getNode() ); + + // setup variable to be caught on tx + var txPacket = undefined; + + bosh.beginSession(); + + // create listener to catch outgoing packet + bosh.on( "write", function(packetNode) { + txPacket = packetNode; + }); + + // send the packet + bosh.write( packet ); + + // make sure that txPacket is an Element + assertNotUndefined( "txPacket was empty", txPacket ); + assertTrue( "txPacket was not an element.", txPacket instanceof Element ); + + // make sure we are adding attributes to raw packets + assertTrue( "txPacket did not have an RID", txPacket.hasAttribute( "rid" ) ); + assertTrue( "txPacket did not have an SID", txPacket.hasAttribute( "sid" ) ); +} + +function testWrite_RID() { + var packetHelper = new Xmpp4Js.Packet.PacketHelper(); + + // create raw packet with IQ element + var packet = packetHelper.createPacket(); + var iq = packetHelper.createIQ( "te...@te...", "set", "jabber:iq:roster" ); + + packet.appendChild( iq.getNode() ); + + bosh.beginSession(); + + + + var inititalRid = null; + + bosh.on( "write", function(packetNode) { + inititalRid = parseInt(packetNode.getAttribute( "rid" )); + }, this, {single:true}); + + bosh.write( packet ); + + assertNotNull( "no intitial RID was set", inititalRid ); + + var nextRid = null; + bosh.on( "write", function(packetNode) { + nextRid = parseInt(packetNode.getAttribute( "rid" )); + }, this); + + bosh.write( packet ); + assertEquals( "Rid did not increment 1", inititalRid + 1, nextRid ); + + bosh.write( packet ); + assertEquals( "Rid did not increment 2", inititalRid + 2, nextRid ); +} + + + </script> + </body> +</html> + + Deleted: branches/xml4script-port/trunk/src/test/javascript/BoundRosterTreeTest.html =================================================================== --- branches/xml4script-port/trunk/src/test/javascript/BoundRosterTreeTest.html 2008-02-23 06:39:31 UTC (rev 693) +++ branches/xml4script-port/trunk/src/test/javascript/BoundRosterTreeTest.html 2008-02-23 06:39:38 UTC (rev 694) @@ -1,233 +0,0 @@ -<html> - <head> - <title>JSUnit - RosterWindowTest</title> - <script language="javascript" src="app/jsUnitCore.js"></script> - - <script type="text/javascript" src="includes.js"></script> - <script type="text/javascript" src="common-test-library.js"></script> - - </head> - <body> - <script type="text/javascript"> - -var GROUP1 = "Group 1"; -var GROUP2 = "Group 2"; - -var ALIAS1 = "Alias 1"; -var ALIAS2 = "Alias 2"; - -var JID1 = "som...@so..."; -var JID2 = "som...@so..."; - -var JID_WITH_RESOURCE = JID1+"/resource1"; - -var tree; -var pm = null; -var rim = null; - -function setUp() { - pm = new Xmpp4Js.Roster.PresenceManager(); - rim = new Xmpp4Js.Roster.RosterItemManager(); - - tree = new Xmpp4Js.UI.Roster.BoundRosterTree({ - renderTo: document.body, - rim: rim, - pm: pm - }); -} - -function tearDown() { - delete tree; -} - -/** - * Ensure that item and group are created with first roster item packet. - * Make sure that it is null before presence but not after. - */ -function testAdd_SingleGroup_() { - rim.update( JID1, ALIAS1, "none", null, [GROUP1] ); - - var pres = new Xmpp4Js.Packet.Presence( "available", "lo...@so...", null, "normal", null ); - pres.setFrom( JID1+"/resource1" ); - pm.update( pres ); - - var group = tree.getGroup( GROUP1 ); - assertNotNull( "Group 1 is null", group ); - - item = tree.getItem( GROUP1, JID1 ); - assertNotNull( "Item is null after presence", item ); -} - -/** - * Ensure that multiple groups are created on first rotser item packet. - * Make sure that it is null before presence but not after. - */ -function testAdd_TwoGroups() { - rim.update( JID1, ALIAS1, "none", null, [GROUP1, GROUP2] ); - - var pres = new Xmpp4Js.Packet.Presence( "available", "lo...@so...", null, "normal", null ); - pres.setFrom( JID1+"/resource1" ); - pm.update( pres ); - - var group = tree.getGroup( GROUP1 ); - assertNotNull( "Group 1 is null but shouldn't be", group ); - - group = tree.getGroup( GROUP2 ); - assertNotNull( "Group 2 is null but shouldn't be", group ); - - var item = tree.getItem( GROUP1, JID1 ); - assertNotNull( "Item in Group 1 is null but shouldn't be", item ); - - item = tree.getItem( GROUP2, JID1 ); - assertNotNull( "Item in Group 2 is null but shouldn't be", item ); -} - -/** - * Ensure that there are no problems updating an entry in its own group - * Make sure that it is not null before presence nor after. - */ -function testUpdate_SingleGroup() { - rim.update( JID1, ALIAS1, "none", null, [GROUP1] ); - rim.update( JID1, ALIAS1, "none", null, [GROUP1] ); - - var pres = new Xmpp4Js.Packet.Presence( "available", "lo...@so...", null, "normal", null ); - pres.setFrom( JID1+"/resource1" ); - pm.update( pres ); - - var group = tree.getGroup( GROUP1 ); - assertNotNull( "Group 1 is null", group ); - - var item = tree.getItem( GROUP1, JID1 ); - assertNotNull( "Item is null", item ); -} - -/** - * Ensure that there are no problems when an entry changes groups. - */ -function testUpdate_Group1ToGroup2() { - rim.update( JID1, ALIAS1, "none", null, [GROUP1] ); - rim.update( JID1, ALIAS1, "none", null, [GROUP2] ); - - var pres = new Xmpp4Js.Packet.Presence( "available", "lo...@so...", null, "normal", null ); - pres.setFrom( JID1+"/resource1" ); - pm.update( pres ); - - // TODO remove group when it's completely empty - var group = tree.getGroup( GROUP1 ); - assertNotNull( "Group 1 is null", group ); - - group = tree.getGroup( GROUP2 ); - assertNotNull( "Group 2 is null", group ); - - // make sure item isn't in group 1 - var item = tree.getItem( GROUP1, JID1 ); - assertNull( "Item from Group 1 IS NOT null but should be", item ); - - item = tree.getItem( GROUP2, JID1 ); - assertNotNull( "Item from Group 2 IS null but shouldn't be", item ); -} - -/** - * Try removing an entry that exists in one gorup, and ensure that the item is gone. - * NOTE: groups are typically not specified in remove packets. - */ -function testRemove_SingleGroup() { - rim.update( JID1, ALIAS1, "none", null, [GROUP1] ); - rim.update( JID1, ALIAS1, "remove", null, [] ); - - var pres = new Xmpp4Js.Packet.Presence( "available", "lo...@so...", null, "normal", null ); - pres.setFrom( JID1+"/resource1" ); - pm.update( pres ); - - var group = tree.getGroup( GROUP1 ); - assertNotNull( group ); - - var item = tree.getItem( GROUP1, JID1 ); - assertNull( item ); -} - -/** - * Remove an entry that exists in multiple groups, and ensure that all items are gone. - * NOTE: groups are typically not specified in remove packets. - */ -function testRemove_MultupleGroups() { - rim.update( JID1, ALIAS1, "none", null, [GROUP1, GROUP2] ); - rim.update( JID1, ALIAS1, "remove", null, [] ); - - var pres = new Xmpp4Js.Packet.Presence( "available", "lo...@so...", null, "normal", null ); - pres.setFrom( JID1+"/resource1" ); - pm.update( pres ); - - var group = tree.getGroup( GROUP1 ); - assertNotNull( group ); - - var item = tree.getItem( GROUP1, JID1 ); - assertNull( item ); - - item = tree.getItem( GROUP2, JID1 ); - assertNull( item ); -} - -function testPresence_RosterBeforePresence() { - rim.update( JID1, ALIAS1, "none", null, [GROUP1, GROUP2] ); - - var group = tree.getGroup( GROUP1 ); - assertNotNull( group ); - - group = tree.getGroup( GROUP2 ); - assertNotNull( group ); - - var item = tree.getItem( GROUP1, JID1 ); - assertNull( item ); - - item = tree.getItem( GROUP2, JID1 ); - assertNull( item ); - - item = tree.getItem( Xmpp4Js.UI.Roster.RosterTree.OFFLINE_GROUP, JID1 ); - assertNotNull( item ); - - var pres = new Xmpp4Js.Packet.Presence( "available", "lo...@so...", null, "normal", null ); - pres.setFrom( JID1+"/resource1" ); - pm.update( pres ); - - item = tree.getItem( GROUP1, JID1 ); - assertNotNull( item ); - - item = tree.getItem( GROUP2, JID1 ); - assertNotNull( item ); - - item = tree.getItem( Xmpp4Js.UI.Roster.RosterTree.OFFLINE_GROUP, JID1 ); - assertNull( item ); -} - -function testPresence_PresenceBeforeRoster() { - - var pres = new Xmpp4Js.Packet.Presence( "available", "lo...@so...", null, "normal", null ); - pres.setFrom( JID1+"/resource1" ); - pm.update( pres ); - - rim.update( JID1, ALIAS1, "none", null, [GROUP1, GROUP2] ); - - var group = tree.getGroup( GROUP1 ); - assertNotNull( "Expected Group 1 to exist", group ); - - group = tree.getGroup( GROUP2 ); - assertNotNull( "Expected Group 2 to exist", group ); - - item = tree.getItem( GROUP1, JID1 ); - assertNotNull( "Expected item to exist in Group 1", item ); - - item = tree.getItem( GROUP2, JID1 ); - assertNotNull( "Expected item to exist in Group 2", item ); - - item = tree.getItem( Xmpp4Js.UI.Roster.RosterTree.OFFLINE_GROUP, JID1 ); - assertNull( "Expected item to not exist in offline group", item ); -} - - </script> - </body> -</html> - - - - Deleted: branches/xml4script-port/trunk/src/test/javascript/ChatRendererTest.html =================================================================== --- branches/xml4script-port/trunk/src/test/javascript/ChatRendererTest.html 2008-02-23 06:39:31 UTC (rev 693) +++ branches/xml4script-port/trunk/src/test/javascript/ChatRendererTest.html 2008-02-23 06:39:38 UTC (rev 694) @@ -1,26 +0,0 @@ -<html> - <head> - <title>JSUnit - RosterWindowTest</title> - <script language="javascript" src="app/jsUnitCore.js"></script> - - <script type="text/javascript" src="includes.js"></script> - <script type="text/javascript" src="common-test-library.js"></script> - - </head> - <body> - <div id="chatRenderer"></div> - <script type="text/javascript"> - - -function testChatRenderer() { - var cr = new Xmpp4Js.UI.Chat.ChatRenderer( "chatRenderer" ); - - cr.render(); -} - - - </script> - </body> -</html> - - Deleted: branches/xml4script-port/trunk/src/test/javascript/RosterTreeTest.html =================================================================== --- branches/xml4script-port/trunk/src/test/javascript/RosterTreeTest.html 2008-02-23 06:39:31 UTC (rev 693) +++ branches/xml4script-port/trunk/src/test/javascript/RosterTreeTest.html 2008-02-23 06:39:38 UTC (rev 694) @@ -1,267 +0,0 @@ -<html> - <head> - <title>JSUnit - RosterWindowTest</title> - <script language="javascript" src="app/jsUnitCore.js"></script> - - <script type="text/javascript" src="includes.js"></script> - <script type="text/javascript" src="common-test-library.js"></script> - - </head> - <body> - <script type="text/javascript"> - -var GROUP1 = "Group 1"; -var GROUP2 = "Group 2"; - -var JID1 = "som...@so..."; -var JID2 = "som...@so..."; - -var JID_WITH_RESOURCE = JID1+"/resource1"; - -var tree; - -function setUp() { - tree = new Xmpp4Js.UI.Roster.RosterTree({ - renderTo: document.body - }); -} - -function tearDown() { - delete tree; -} - -/** - * Try to create a group and make sure that it exists. - */ -function testCreateGroup() { - tree.createGroup( GROUP1 ); - - var group = tree.getGroup( GROUP1 ); - assertNotNull( group ); -} - -/** - * Try to create a group and make sure an error is thrown. - */ -function testCreateGroup_Again() { - tree.createGroup( GROUP1 ); - try { - tree.createGroup( GROUP1 ); - fail( "Should have errored when trying to create an existing group." ); - } catch(e) { - // TODO test exception type - } - - var group = tree.getGroup( GROUP1 ); - assertNotNull( group ); - // TODO make sure it doesn't exist twice. -} - -/** - * Try creating two fresh groups. - */ -function testCreateGroups() { - tree.createGroups( [GROUP1, GROUP2] ); - - assertNotNull( tree.getGroup( GROUP1 ) ); - assertNotNull( tree.getGroup( GROUP2 ) ); -} - -/** - * Create two groups, one of which exists. DO NOT error. - */ -function testCreateGroups_GroupExists() { - tree.createGroup( GROUP1 ); - - try { - tree.createGroups( [GROUP1, GROUP2] ); - } catch(e) { - fail( "We should not have errored when a group already existed." ); - } - - assertNotNull( tree.getGroup( GROUP1 ) ); - assertNotNull( tree.getGroup( GROUP2 ) ); -} - -/** - * Create a group and add an item to it. - */ -function testCreateItem() { - tree.createGroup( GROUP1 ); - tree.createItem( GROUP1, JID1 ); - - assertNotNull( tree.getItem( GROUP1, JID1 ) ); -} - -/** - * Create an item in two groups - */ -function testCreateItem_DifferentGroup() { - tree.createGroup( GROUP1 ); - tree.createItem( GROUP1, JID1 ); - - tree.createGroup( GROUP2 ); - tree.createItem( GROUP2, JID1 ); - - assertNotNull( tree.getItem( GROUP1, JID1 ) ); - assertNotNull( tree.getItem( GROUP2, JID1 ) ); -} - -/** - * Try to create an item that already exists. expect an error. - */ -function testCreateItem_SameGroup() { - tree.createGroup( GROUP1 ); - tree.createItem( GROUP1, JID1 ); - try { - tree.createItem( GROUP1, JID1 ); - fail( "Should have errored when trying to create an existing item." ); - } catch(e) { - // TODO test exception type - } -} - -/** - * Creates two groups and an item in group 1. moves that item to group 1. - * ensures that item exists in group 2 but not group 1. - */ -function testMoveItem() { - tree.createGroup( GROUP1 ); - tree.createGroup( GROUP2 ); - - tree.createItem( GROUP1, JID1 ); - - tree.moveItem( GROUP1, GROUP2, JID1 ); - - assertNull( tree.getItem( GROUP1, JID1 ) ); - assertNotNull( tree.getItem( GROUP2, JID1 ) ); -} - - -/** - * Creates two groups each with a jid. tries to move from group 1 to 2. errors - * because it already exists in group 2. - */ -function testMoveItem_JidAlreadyExists() { - tree.createGroup( GROUP1 ); - tree.createGroup( GROUP2 ); - - tree.createItem( GROUP1, JID1 ); - tree.createItem( GROUP2, JID1 ); - - try { - tree.moveItem( GROUP1, GROUP2, JID1 ); - fail( "Should have errored moving to a group where jid already exists." ); - } catch(e){ - - } -} - -/** - * Test the getItemInAllGroups method by creating two groups with an item, - * and ensuring that there are two items in the returned list - */ -function testGetItemInAllGroups() { - tree.createGroup( GROUP1 ); - tree.createGroup( GROUP2 ); - - tree.createItem( GROUP1, JID1 ); - tree.createItem( GROUP2, JID1 ); - - var items = tree.getItemInAllGroups( JID1 ); - - assertEquals( "The item does not exist in the expected number of groups", 2, items.length ); - - // TODO ensure that the names match. -} - -/** - * Test the removeItemFromAllGroups method. - */ -function testRemoveItemFromAllGroups() { - tree.createGroup( GROUP1 ); - tree.createGroup( GROUP2 ); - - tree.createItem( GROUP1, JID1 ); - tree.createItem( GROUP2, JID1 ); - - tree.removeItemFromAllGroups( JID1 ); - - assertNull( tree.getItem( GROUP1, JID1 ) ); - assertNull( tree.getItem( GROUP2, JID1 ) ); -} - -/** - * Update the groups an item belongs to with all requisite groups existing. - */ -function testUpdateItemGroups_Group1ToGroup2_GroupsExist() { - tree.createGroup( GROUP1 ); - tree.createGroup( GROUP2 ); - - tree.createItem( GROUP1, JID1 ); - - tree.updateItemGroups( JID1, [GROUP2] ); - - assertNull( tree.getItem( GROUP1, JID1 ) ); - assertNotNull( tree.getItem( GROUP2, JID1 ) ); -} - -/** - * Update the groups an item belongs to with a requisite group missing. will - * error. - */ -function testUpdateItemGroups_Group1ToGroup2_Group2Missing() { - tree.createGroup( GROUP1 ); - - tree.createItem( GROUP1, JID1 ); - - try { - tree.updateItemGroups( JID1, [GROUP2] ); - fail( "Should have errored when Group 2 didn't exist" ); - } catch(e) { - - } -} - -/** - * Creates an item that exists in a single group. then updates groups, including - * the one it already exists in. should NOT error. - */ -function testUpdateItemGroups_Group1ToGroup1AndGroup2_GroupsExist() { - tree.createGroup( GROUP1 ); - tree.createGroup( GROUP2 ); - - tree.createItem( GROUP1, JID1 ); - - try { - tree.updateItemGroups( JID1, [GROUP1, GROUP2] ); - - } catch(e) { - fail( "Should not have errored when already existing in a group." ); - } -} - -/** - * Creates an item in group 1 and then updates it to exist in group 1 and 2. but - * group 2 does not exist, so an error is thrown. - */ -function testUpdateItemGroups_Group1ToGroup1AndGroup2_Group2Missing() { - tree.createGroup( GROUP1 ); - - tree.createItem( GROUP1, JID1 ); - - try { - tree.updateItemGroups( JID1, [GROUP1, GROUP2] ); - fail( "Should have errored when group 2 didn't exist" ); - } catch(e) { - - } -} - - </script> - </body> -</html> - - - - Deleted: branches/xml4script-port/trunk/src/test/javascript/broken/BOSHTransportTest.html =================================================================== --- branches/xml4script-port/trunk/src/test/javascript/broken/BOSHTransportTest.html 2008-02-23 06:39:31 UTC (rev 693) +++ branches/xml4script-port/trunk/src/test/javascript/broken/BOSHTransportTest.html 2008-02-23 06:39:38 UTC (rev 694) @@ -1,145 +0,0 @@ -<html> - <head> - <title>JSUnit - RosterWindowTest</title> - <script language="javascript" src="app/jsUnitCore.js"></script> - - <script type="text/javascript" src="includes.js"></script> - <script type="text/javascript" src="common-test-library.js"></script> - - </head> - <body> - <script type="text/javascript"> - - - - -var pw; - -function setUp() { - setupMockRequestPool(); - - pw = new Xmpp4Js.IO.PacketWriter("/http-bind/"); -} -function tearDown() { - pw = null; -} -function testWriteRaw() { - - var packetHelper = new Xmpp4Js.Packet.PacketHelper(); - - // create raw packet with IQ element - var packet = packetHelper.createPacket(); - var iq = packetHelper.createIQ( "te...@te...", "set", "jabber:iq:roster" ); - - packet.appendChild( iq.getNode() ); - - // setup variable to be caught on tx - var txPacket = undefined; - - // create listener to catch outgoing packet - pw.getConnection().addListener( "beforerequest", function(conn, options) { - txPacket = options.xmlNode; - }); - - pw.sid = 1234; - - // write the packet - pw.writeRaw( packet ); - pw.flush(); - - // make sure that txPacket is an Element - assertNotUndefined( txPacket ); - assertTrue( txPacket instanceof DOMElement ); - - // make sure we are adding attributes to raw packets - assertTrue( txPacket.hasAttribute( "rid" ) ); - assertTrue( txPacket.hasAttribute( "sid" ) ); -} - - -function testWrite_ElementType() { - - var packetHelper = new Xmpp4Js.Packet.PacketHelper(); - - var iq = packetHelper.createIQ( "te...@te...", "set", "jabber:iq:roster" ); - - var txPacket = undefined; - - // create listener to catch outgoing packet - pw.getConnection().addListener( "beforerequest", function(conn, options) { - txPacket = options.xmlNode; - }); - - pw.sid = 1234; - - pw.write( iq ); - pw.flush(); - - assertNotUndefined( txPacket ); - assertTrue( txPacket instanceof DOMElement ); -} - - - -function testWrite_SID() { - - var packetHelper = new Xmpp4Js.Packet.PacketHelper(); - - var iq = packetHelper.createIQ( "te...@te...", "set", "jabber:iq:roster" ); - - // setup variable to be caught on tx - var txPacket = undefined; - - // create listener to catch outgoing packet - pw.getConnection().addListener( "beforerequest", function(conn, options) { - txPacket = options.xmlNode; - }); - - pw.sid = 1234; - pw.write( iq ); - pw.flush(); - assertTrue( txPacket.hasAttribute( "sid" ) ); - assertEquals( 1234, parseInt(txPacket.getAttribute( "sid" ).toString()) ); -} - - -function testWrite_RID() { - - var initialRid = 1; - var packetHelper = new Xmpp4Js.Packet.PacketHelper(); - - var iq = packetHelper.createIQ( "te...@te...", "set", "jabber:iq:roster" ); - - // setup variable to be caught on tx - var txPacket = undefined; - - // create listener to catch outgoing packet - pw.getConnection().addListener( "beforerequest", function(conn, options) { - txPacket = options.xmlNode; - console.info( "beforerequest for RID" ); - console.dir( options ); - }); - - pw.sid = 1234; - pw.rid = initialRid; - - pw.write( iq ); - pw.flush(); - - assertEquals( initialRid, parseInt(txPacket.getAttribute( "rid" ).toString()) ); - - pw.write( iq ); - pw.flush(); - assertEquals( initialRid + 1, parseInt(txPacket.getAttribute( "rid" ).toString()) ); - - pw.write( iq ); - pw.flush(); - assertEquals( initialRid + 2, parseInt(txPacket.getAttribute( "rid" ).toString()) ); -} - - - </script> - </body> -</html> - - Modified: branches/xml4script-port/trunk/src/test/javascript/common-test-library.js =================================================================== --- branches/xml4script-port/trunk/src/test/javascript/common-test-library.js 2008-02-23 06:39:31 UTC (rev 693) +++ branches/xml4script-port/trunk/src/test/javascript/common-test-library.js 2008-02-23 06:39:38 UTC (rev 694) @@ -94,6 +94,20 @@ send: function() { MockBOSHTransport.superclass.send.call( this, arguments ); this.sendQueue(); + }, + + beginSession: function() { + MockBOSHTransport.superclass.beginSession.call( this ); + + var packetNode = DomBuilder.node( "body", { + xmlns: "http://jabber.org/protocol/httpbind", + sid: "1234", + requests: "2", + hold: "1", + wait: "60" + }); + + this.onBeginSessionResponse( packetNode ); } }); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |