[ Index ] |
|
Code source de Kupu-1.3.5 |
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_plone.js 15966 2005-08-11 15:16:18Z duncan $ 12 13 // Various tests for html -> xhtml processing. 14 15 function KupuPloneTestCase() { 16 SelectionTestCase.apply(this); 17 this.base_setUp = this.setUp; 18 this.name = 'KupuPloneTestCase'; 19 20 this.incontext = function(s) { 21 return '<html><head><title>test</title></head><body>'+s+'</body></html>'; 22 } 23 this.verifyResult = function(actual, expected) { 24 //var expected = this.incontext(exp); 25 26 if (actual == expected) 27 return; 28 29 var context = /<html><head><title>test<\/title><\/head><body>(.*)<\/body><\/html>/; 30 if (context.test(actual) && context.test(expected)) { 31 var a = context.exec(actual)[1]; 32 var e = context.exec(expected)[1]; 33 throw('Assertion failed: ' + a + ' != ' + e); 34 } 35 throw('Assertion failed: ' + actual + ' != ' + expected); 36 } 37 38 this.setUp = function() { 39 this.base_setUp(); 40 this.editor = new KupuEditor(this.kupudoc, {}, null); 41 this.ui = new PloneKupuUI('kupu-tb-styles'); 42 this.ui.editor = this.editor; 43 }; 44 45 this.testRelativeLinks1 = function() { 46 var data = '<a href="http://localhost/cms/folder/emptypage#_ftnref1">[1]</a>'; 47 var expected = '<a href="#_ftnref1">[1]</a>'; 48 var base = 'http://localhost/cms/folder/'; 49 50 var actual = this.editor.makeLinksRelative(data, base); 51 this.verifyResult(actual, expected); 52 } 53 54 this.testRelativeLinks2 = function() { 55 var data = '<a href="http://localhost/cms/folder/otherdoc#key">[1]</a>'; 56 var expected = '<a href="otherdoc#key">[1]</a>'; 57 var base = 'http://localhost/cms/folder/'; 58 59 var actual = this.editor.makeLinksRelative(data, base); 60 this.verifyResult(actual, expected); 61 } 62 63 this.testRelativeLinks3 = function() { 64 var data = '<a href="http://localhost/cms/otherfolder/otherdoc">[1]</a>'; 65 var expected = '<a href="../otherfolder/otherdoc">[1]</a>'; 66 var base = 'http://localhost/cms/folder/'; 67 68 var actual = this.editor.makeLinksRelative(data, base); 69 this.verifyResult(actual, expected); 70 } 71 72 this.testRelativeLinks4 = function() { 73 var data = '<a href="http://localhost:9080/plone/Members/admin/art1">[1]</a>'; 74 var expected = '<a href="art1">[1]</a>'; 75 var base = 'http://localhost:9080/plone/Members/admin/art1'; 76 77 var actual = this.editor.makeLinksRelative(data, base); 78 this.verifyResult(actual, expected); 79 } 80 81 this.testRelativeLinks5 = function() { 82 var data = '<a href="http://localhost:9080/plone/Members/admin/art1/subitem">[1]</a>'; 83 var expected = '<a href="art1/subitem">[1]</a>'; 84 var base = 'http://localhost:9080/plone/Members/admin/art1'; 85 86 var actual = this.editor.makeLinksRelative(data, base); 87 this.verifyResult(actual, expected); 88 } 89 90 this.testRelativeLinks6 = function() { 91 var data = '<a href="http://localhost:9080/plone/Members/admin">[1]</a>'; 92 var expected = '<a href=".">[1]</a>'; 93 var base = 'http://localhost:9080/plone/Members/admin/art1'; 94 95 var actual = this.editor.makeLinksRelative(data, base); 96 this.verifyResult(actual, expected); 97 } 98 99 this.testSetTextStyle = function() { 100 var data = '<p>line 1</p><div class="Caption">line 2</div><div class="Caption">line 3</div>'; 101 // select .....................................|e 2</div><div class="Caption">line|... 102 var expected = '<p>line 1</p><h2>line 2</h2><h2>line 3</h2>'; 103 this.body.innerHTML = data; 104 this._setSelection(10, null, 18, null, 'e 2line'); 105 this.ui.setTextStyle('h2'); 106 this.assertEquals(this._cleanHtml(this.body.innerHTML), expected); 107 } 108 109 this.testSetTextStyleTable = function() { 110 var data = '<table><tbody><tr><td>test</td></tr></tbody></table>'; 111 // select ................es................... 112 var expected = '<table><tbody><tr><td><div class="te st">test</div></td></tr></tbody></table>'; 113 var withheader = '<table><tbody><tr><th>test</th></tr></tbody></table>'; 114 this.body.innerHTML = data; 115 var idx = _SARISSA_IS_IE ? 2 : 1; 116 this._setSelection(idx, null, idx+2, null, 'es'); 117 this.ui.setTextStyle('div|te st'); // Space in class forces IE to put it in quotes! 118 this.assertEquals(this._cleanHtml(this.body.innerHTML), expected); 119 this._setSelection(idx, null, idx+2, null, 'es'); 120 this.ui.setTextStyle('td'); 121 this.assertEquals(this._cleanHtml(this.body.innerHTML), data); 122 this.ui.setTextStyle('th'); 123 this.assertEquals(this._cleanHtml(this.body.innerHTML), withheader); 124 } 125 } 126 127 KupuPloneTestCase.prototype = new SelectionTestCase;
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 25 15:30:41 2007 | par Balluche grâce à PHPXref 0.7 |