Annotation of kupuMPIWG/tests/test_kupueditor.js, revision 1.1.1.1

1.1       dwinter     1: /*****************************************************************************
                      2:  *
                      3:  * Copyright (c) 2003-2005 Kupu Contributors. All rights reserved.
                      4:  *
                      5:  * This software is distributed under the terms of the Kupu
                      6:  * License. See LICENSE.txt for license text. For a list of Kupu
                      7:  * Contributors see CREDITS.txt.
                      8:  *
                      9:  *****************************************************************************/
                     10: 
                     11: // $Id: test_kupueditor.js 12412 2005-05-17 12:35:41Z duncan $
                     12: 
                     13: function KupuEditorTestCase() {
                     14:     this.name = 'KupuEditorTestCase';
                     15: 
                     16:     this.setUp = function() {
                     17:         this.editor = new KupuEditor(null, {}, null);
                     18:     };
                     19: 
                     20:     this.testGetNearestParentOfType = function() {
                     21:         var doc = Sarissa.getDomDocument();
                     22:         var xmlstring = '<p><a id="outer"><a id="inner"><b><span>some link</span></b> Even more</a></a></p>'
                     23:         doc.loadXML(xmlstring);
                     24:         this.assertEquals(doc.xml.strip(),xmlstring);
                     25: 
                     26:         var span = doc.documentElement.firstChild.firstChild.firstChild.firstChild;
                     27: 
                     28:         // first test with a non-existing parent; we should get null.
                     29:         var ret = this.editor.getNearestParentOfType(span, 'br');
                     30:         this.assertFalse(ret);
                     31: 
                     32:         // now test with a real parent; we expect the exact same node.
                     33:         ret = this.editor.getNearestParentOfType(span, 'a');
                     34:         var expected = doc.documentElement.firstChild.firstChild;
                     35:         this.assert(ret === expected);
                     36:         // assert again that we got the nearest...
                     37:         this.assertEquals(ret.getAttribute('id'), 'inner');
                     38:     };
                     39: 
                     40:     this.testRemoveNearestParentOfType = function() {
                     41:         var doc = Sarissa.getDomDocument();
                     42:         var xmlstring = '<p><a id="outer"><a id="inner"><b><span>some link</span></b> Even more</a></a></p>'
                     43:         doc.loadXML(xmlstring);
                     44:         this.assertEquals(doc.xml.strip(), xmlstring);
                     45: 
                     46:         var span = doc.documentElement.firstChild.firstChild.firstChild.firstChild;
                     47: 
                     48:         // first try to remove a parent we don't have; we expect the
                     49:         // xml not to change.
                     50:         this.editor.removeNearestParentOfType(span, 'br');
                     51:         this.assertEquals(doc.xml.strip(), xmlstring);  
                     52: 
                     53:         // now remove a real parent; we expect it to be gone in the
                     54:         // resulting xml.
                     55:         this.editor.removeNearestParentOfType(span, 'a');
                     56:         var expected = '<p><a id="outer"><b><span>some link</span></b> Even more</a></p>';
                     57:         this.assertEquals(doc.xml.strip(), expected);
                     58:     };
                     59: 
                     60:     this.test_serializeOutputToString = function() {
                     61:         var doc = Sarissa.getDomDocument();
                     62:         //var docel = doc.documentElement;
                     63:         var docel = doc.documentElement ? doc.documentElement : doc;
                     64:         var html = doc.createElement('html');
                     65:         docel.appendChild(html);
                     66:         var head = doc.createElement('head');
                     67:         html.appendChild(head);
                     68:         var title = doc.createElement('title');
                     69:         head.appendChild(title);
                     70:         var titletext = doc.createTextNode('foo');
                     71:         title.appendChild(titletext);
                     72:         var body = doc.createElement('body');
                     73:         html.appendChild(body);
                     74:         var sometext1 = doc.createTextNode('foo');
                     75:         body.appendChild(sometext1);
                     76:         var br = doc.createElement('br');
                     77:         body.appendChild(br);
                     78:         var sometext2 = doc.createTextNode('bar');
                     79:         body.appendChild(sometext2);
                     80:         var result_not_replaced = '<html><head><title>foo</title></head><body>foo<br/>bar</body></html>';
                     81:         this.assertEquals(this.editor._serializeOutputToString(docel),
                     82:                           result_not_replaced);
                     83:         var result_replaced = '<html><head><title>foo</title></head><body>foo<br />bar</body></html>';
                     84:         this.editor.config.compatible_singletons = true;
                     85:         this.assertEquals(this.editor._serializeOutputToString(docel),
                     86:                           result_replaced);
                     87:         var result_strict = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ' + 
                     88:           '"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n' + 
                     89:           '<html xmlns="http://www.w3.org/1999/xhtml"><head><title>foo</title></head><body>foo<br />bar</body></html>';
                     90:         this.editor.config.strict_output = true;
                     91:         this.assertEquals(this.editor._serializeOutputToString(docel),
                     92:                           result_strict);
                     93:     };
                     94: 
                     95:     this.testEscapeEntities = function() {
                     96:         var test = 'r\xe9diger\r\nhello';
                     97:         var expected = 'r&#233;diger\r\nhello';
                     98:         this.assertEquals(this.editor.escapeEntities(test), expected);
                     99:     };
                    100: };
                    101: 
                    102: KupuEditorTestCase.prototype = new TestCase;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>