/***************************************************************************** * * Copyright (c) 2003-2005 Kupu Contributors. All rights reserved. * * This software is distributed under the terms of the Kupu * License. See LICENSE.txt for license text. For a list of Kupu * Contributors see CREDITS.txt. * *****************************************************************************/ // $Id: test_kupueditor.js,v 1.1.1.1 2005/08/30 17:10:23 dwinter Exp $ function KupuEditorTestCase() { this.name = 'KupuEditorTestCase'; this.setUp = function() { this.editor = new KupuEditor(null, {}, null); }; this.testGetNearestParentOfType = function() { var doc = Sarissa.getDomDocument(); var xmlstring = '

some link Even more

' doc.loadXML(xmlstring); this.assertEquals(doc.xml.strip(),xmlstring); var span = doc.documentElement.firstChild.firstChild.firstChild.firstChild; // first test with a non-existing parent; we should get null. var ret = this.editor.getNearestParentOfType(span, 'br'); this.assertFalse(ret); // now test with a real parent; we expect the exact same node. ret = this.editor.getNearestParentOfType(span, 'a'); var expected = doc.documentElement.firstChild.firstChild; this.assert(ret === expected); // assert again that we got the nearest... this.assertEquals(ret.getAttribute('id'), 'inner'); }; this.testRemoveNearestParentOfType = function() { var doc = Sarissa.getDomDocument(); var xmlstring = '

some link Even more

' doc.loadXML(xmlstring); this.assertEquals(doc.xml.strip(), xmlstring); var span = doc.documentElement.firstChild.firstChild.firstChild.firstChild; // first try to remove a parent we don't have; we expect the // xml not to change. this.editor.removeNearestParentOfType(span, 'br'); this.assertEquals(doc.xml.strip(), xmlstring); // now remove a real parent; we expect it to be gone in the // resulting xml. this.editor.removeNearestParentOfType(span, 'a'); var expected = '

some link Even more

'; this.assertEquals(doc.xml.strip(), expected); }; this.test_serializeOutputToString = function() { var doc = Sarissa.getDomDocument(); //var docel = doc.documentElement; var docel = doc.documentElement ? doc.documentElement : doc; var html = doc.createElement('html'); docel.appendChild(html); var head = doc.createElement('head'); html.appendChild(head); var title = doc.createElement('title'); head.appendChild(title); var titletext = doc.createTextNode('foo'); title.appendChild(titletext); var body = doc.createElement('body'); html.appendChild(body); var sometext1 = doc.createTextNode('foo'); body.appendChild(sometext1); var br = doc.createElement('br'); body.appendChild(br); var sometext2 = doc.createTextNode('bar'); body.appendChild(sometext2); var result_not_replaced = 'foofoo
bar'; this.assertEquals(this.editor._serializeOutputToString(docel), result_not_replaced); var result_replaced = 'foofoo
bar'; this.editor.config.compatible_singletons = true; this.assertEquals(this.editor._serializeOutputToString(docel), result_replaced); var result_strict = '\n' + 'foofoo
bar'; this.editor.config.strict_output = true; this.assertEquals(this.editor._serializeOutputToString(docel), result_strict); }; this.testEscapeEntities = function() { var test = 'r\xe9diger\r\nhello'; var expected = 'rédiger\r\nhello'; this.assertEquals(this.editor.escapeEntities(test), expected); }; }; KupuEditorTestCase.prototype = new TestCase;