mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-10-07 21:07:14 +00:00
Removed CKEDITOR test files
Monotone-Parent: b2cf7eda0ef8f15fb6e78f8c38a7406a47bcdd2f Monotone-Revision: 253445df7ee9966d67a53263e1ffd5389ab09588 Monotone-Author: crobert@inverse.ca Monotone-Date: 2009-08-26T14:10:37 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
1 parent
0ce87017d6
commit
bf64bfdc1d
36 files changed
-7717
No files matched your search
@@ -1,4 +0,0 @@
|
||||
.sample
|
||||
{
|
||||
position: absolute;
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
var testVar = 'Test!';
|
||||
@@ -1 +0,0 @@
|
||||
Sample Text
|
||||
@@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<list>
|
||||
<item id="test1" />
|
||||
<item id="test2" />
|
||||
</list>
|
||||
@@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<list>
|
||||
<item id="test1" />
|
||||
<item id="test2" />
|
||||
</list>
|
||||
@@ -1,10 +0,0 @@
|
||||
/*
|
||||
Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.html or http://ckeditor.com/license
|
||||
*/
|
||||
|
||||
CKEDITOR.editorConfig = function( config )
|
||||
{
|
||||
config.customConfig = '_editor/custom_config_2.js';
|
||||
config.test_custom1 = 'Ok';
|
||||
};
|
||||
@@ -1,9 +0,0 @@
|
||||
/*
|
||||
Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.html or http://ckeditor.com/license
|
||||
*/
|
||||
|
||||
CKEDITOR.editorConfig = function( config )
|
||||
{
|
||||
config.test_custom2 = 'Ok';
|
||||
};
|
||||
@@ -1,163 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.ajax</title>
|
||||
<link rel="stylesheet" type="text/css" href="../test.css" />
|
||||
<script type="text/javascript" src="../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../_source/core/loader.js"></script>
|
||||
<script type="text/javascript" src="../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.loader.load( 'core/ajax' );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_load_sync : function()
|
||||
{
|
||||
var data = CKEDITOR.ajax.load( '../_assets/sample.txt' );
|
||||
assert.areSame( 'Sample Text\r\n', data, 'The loaded data doesn\'t match' );
|
||||
},
|
||||
|
||||
test_load_sync_404 : function()
|
||||
{
|
||||
var data = CKEDITOR.ajax.load( '../_assets/404.txt' );
|
||||
assert.isNull( data );
|
||||
},
|
||||
|
||||
test_load_async : function()
|
||||
{
|
||||
var testCase = this;
|
||||
var callback = function( data )
|
||||
{
|
||||
testCase.resume( function()
|
||||
{
|
||||
assert.areSame( 'Sample Text\r\n', data, 'The loaded data doesn\'t match' );
|
||||
} );
|
||||
};
|
||||
|
||||
CKEDITOR.ajax.load( '../_assets/sample.txt', callback );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
test_load_async_404 : function()
|
||||
{
|
||||
var testCase = this;
|
||||
var callback = function( data )
|
||||
{
|
||||
testCase.resume( function()
|
||||
{
|
||||
assert.isNull( data );
|
||||
} );
|
||||
};
|
||||
|
||||
CKEDITOR.ajax.load( '../_assets/404.txt', callback );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
test_loadXml_sync : function()
|
||||
{
|
||||
var data = CKEDITOR.ajax.loadXml( '../_assets/sample.xml' );
|
||||
assert.isInstanceOf( CKEDITOR.xml, data );
|
||||
assert.isNotNull( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (null)' );
|
||||
assert.isNotUndefined( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (undefined)' );
|
||||
},
|
||||
|
||||
test_loadXml_sync_404 : function()
|
||||
{
|
||||
var data = CKEDITOR.ajax.loadXml( '../_assets/404.xml' );
|
||||
assert.isNull( data );
|
||||
},
|
||||
|
||||
test_loadXml_async : function()
|
||||
{
|
||||
var testCase = this;
|
||||
var callback = function( data )
|
||||
{
|
||||
testCase.resume( function()
|
||||
{
|
||||
assert.isInstanceOf( CKEDITOR.xml, data );
|
||||
assert.isNotNull( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (null)' );
|
||||
assert.isNotUndefined( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (undefined)' );
|
||||
} );
|
||||
};
|
||||
|
||||
CKEDITOR.ajax.loadXml( '../_assets/sample.xml', callback );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
test_loadXml_async_404 : function()
|
||||
{
|
||||
var testCase = this;
|
||||
var callback = function( data )
|
||||
{
|
||||
testCase.resume( function()
|
||||
{
|
||||
assert.isNull( data );
|
||||
} );
|
||||
};
|
||||
|
||||
CKEDITOR.ajax.loadXml( '../_assets/404.xml', callback );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
test_loadXml_sync_txt : function()
|
||||
{
|
||||
var data = CKEDITOR.ajax.loadXml( '../_assets/sample_xml.txt' );
|
||||
assert.isInstanceOf( CKEDITOR.xml, data );
|
||||
assert.isNotNull( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (null)' );
|
||||
assert.isNotUndefined( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (undefined)' );
|
||||
},
|
||||
|
||||
test_loadXml_async_txt : function()
|
||||
{
|
||||
var testCase = this;
|
||||
var callback = function( data )
|
||||
{
|
||||
testCase.resume( function()
|
||||
{
|
||||
assert.isInstanceOf( CKEDITOR.xml, data );
|
||||
assert.isNotNull( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (null)' );
|
||||
assert.isNotUndefined( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (undefined)' );
|
||||
} );
|
||||
};
|
||||
|
||||
CKEDITOR.ajax.loadXml( '../_assets/sample_xml.txt', callback );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
test_parseXml : function()
|
||||
{
|
||||
var data = new CKEDITOR.xml( '<?xml version="1.0" encoding="utf-8" ?><list><item id="test1" /><item id="test2" /></list>' );
|
||||
assert.isInstanceOf( CKEDITOR.xml, data );
|
||||
assert.isNotNull( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (null)' );
|
||||
assert.isNotUndefined( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (undefined)' );
|
||||
},
|
||||
|
||||
test_parseXml_nbsp : function()
|
||||
{
|
||||
var data = new CKEDITOR.xml( '<?xml version="1.0" encoding="utf-8" ?><list><item id="test1"> </item><item id="test2" /></list>' );
|
||||
assert.isInstanceOf( CKEDITOR.xml, data );
|
||||
assert.isNotNull( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (null)' );
|
||||
assert.isNotUndefined( data.selectSingleNode( '//list/item' ), 'The loaded data doesn\'t match (undefined)' );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,160 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR</title>
|
||||
<link rel="stylesheet" type="text/css" href="../test.css" />
|
||||
<script type="text/javascript" src="../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
// Clean up all instances been created on the page.
|
||||
function removeAllInstances()
|
||||
{
|
||||
var allInstances = CKEDITOR.instances;
|
||||
for( var i in allInstances )
|
||||
{
|
||||
CKEDITOR.remove( allInstances[ i ] );
|
||||
}
|
||||
}
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_replaceClass : function()
|
||||
{
|
||||
// Asserts the default value.
|
||||
assert.areSame( 'ckeditor', CKEDITOR.replaceClass );
|
||||
},
|
||||
|
||||
test_replaceByClassEnabled : function()
|
||||
{
|
||||
// Asserts the default value.
|
||||
assert.isTrue( CKEDITOR.replaceByClassEnabled );
|
||||
},
|
||||
|
||||
test_replaceId : function()
|
||||
{
|
||||
CKEDITOR.replace( 'editor1' );
|
||||
assert.isObject( CKEDITOR.instances.editor1, 'editor instance not found' );
|
||||
assert.areSame( 'editor1', CKEDITOR.instances.editor1.name, 'instance name doesn\'t match' );
|
||||
assert.areSame( document.getElementById( 'editor1' ), CKEDITOR.instances.editor1.element.$, 'instance element doesn\'t match' );
|
||||
},
|
||||
|
||||
test_replaceName : function()
|
||||
{
|
||||
CKEDITOR.replace( 'editor2' );
|
||||
assert.isObject( CKEDITOR.instances.editor2, 'editor instance not found' );
|
||||
assert.areSame( 'editor2', CKEDITOR.instances.editor2.name, 'instance name doesn\'t match' );
|
||||
assert.areSame( document.getElementsByName( 'editor2' )[0], CKEDITOR.instances.editor2.element.$, 'instance element doesn\'t match' );
|
||||
},
|
||||
|
||||
test_replaceElement : function()
|
||||
{
|
||||
CKEDITOR.replace( document.getElementById( 'editor5' ) );
|
||||
assert.isObject( CKEDITOR.instances.editor5, 'editor instance not found' );
|
||||
assert.areSame( 'editor5', CKEDITOR.instances.editor5.name, 'instance name doesn\'t match' );
|
||||
assert.areSame( document.getElementById( 'editor5' ), CKEDITOR.instances.editor5.element.$, 'instance element doesn\'t match' );
|
||||
},
|
||||
|
||||
|
||||
test_replaceError : function()
|
||||
{
|
||||
try
|
||||
{
|
||||
CKEDITOR.replace( 'error' );
|
||||
}
|
||||
catch ( e )
|
||||
{
|
||||
assert.areSame( '[CKEDITOR.editor.replace] The element with id or name "error" was not found.', e );
|
||||
}
|
||||
},
|
||||
|
||||
test_replaceAll_Class : function()
|
||||
{
|
||||
CKEDITOR.replaceAll( 'myclass' );
|
||||
|
||||
assert.isObject( CKEDITOR.instances.editor3, 'editor3 instance not found' );
|
||||
assert.areSame( 'editor3', CKEDITOR.instances.editor3.name, 'editor3 instance name doesn\'t match' );
|
||||
assert.areSame( document.getElementById( 'editor3' ), CKEDITOR.instances.editor3.element.$, 'editor3 instance element doesn\'t match' );
|
||||
|
||||
assert.isObject( CKEDITOR.instances.editor4, 'editor4 instance not found' );
|
||||
assert.areSame( 'editor4', CKEDITOR.instances.editor4.name, 'editor4 instance name doesn\'t match' );
|
||||
assert.areSame( document.getElementsByName( 'editor4' )[0], CKEDITOR.instances.editor4.element.$, 'editor4 instance element doesn\'t match' );
|
||||
|
||||
assert.isUndefined( CKEDITOR.instances.editor6, 'editor6 should be undefined' );
|
||||
assert.isUndefined( CKEDITOR.instances.editor7, 'editor7 should be undefined' );
|
||||
assert.isUndefined( CKEDITOR.instances.editor8, 'editor8 should be undefined' );
|
||||
assert.isUndefined( CKEDITOR.instances.editor8, 'editor9 should be undefined' );
|
||||
},
|
||||
|
||||
test_replaceAll_Function : function()
|
||||
{
|
||||
CKEDITOR.replaceAll( function( textarea )
|
||||
{
|
||||
return ( textarea.id != 'editor6' && textarea.id != 'editor8' );
|
||||
} );
|
||||
|
||||
assert.isObject( CKEDITOR.instances.editor7, 'editor7 instance not found' );
|
||||
assert.areSame( 'editor7', CKEDITOR.instances.editor7.name, 'editor7 instance name doesn\'t match' );
|
||||
assert.areSame( document.getElementById( 'editor7' ), CKEDITOR.instances.editor7.element.$, 'editor7 instance element doesn\'t match' );
|
||||
|
||||
assert.isObject( CKEDITOR.instances.editor9, 'editor9 instance not found' );
|
||||
assert.areSame( 'editor9', CKEDITOR.instances.editor9.name, 'editor9 instance name doesn\'t match' );
|
||||
assert.areSame( document.getElementById( 'editor9' ), CKEDITOR.instances.editor9.element.$, 'editor9 instance element doesn\'t match' );
|
||||
|
||||
assert.isUndefined( CKEDITOR.instances.editor6, 'editor6 should be undefined' );
|
||||
assert.isUndefined( CKEDITOR.instances.editor8, 'editor8 should be undefined' );
|
||||
},
|
||||
|
||||
test_replaceAll : function()
|
||||
{
|
||||
CKEDITOR.replaceAll();
|
||||
|
||||
assert.isObject( CKEDITOR.instances.editor6, 'editor6 instance not found' );
|
||||
assert.areSame( 'editor6', CKEDITOR.instances.editor6.name, 'editor6 instance name doesn\'t match' );
|
||||
assert.areSame( document.getElementById( 'editor6' ), CKEDITOR.instances.editor6.element.$, 'editor6 instance element doesn\'t match' );
|
||||
|
||||
assert.isObject( CKEDITOR.instances.editor8, 'editor8 editor instance not found' );
|
||||
assert.areSame( 'editor8', CKEDITOR.instances.editor8.name, 'editor8 instance name doesn\'t match' );
|
||||
assert.areSame( document.getElementById( 'editor8' ), CKEDITOR.instances.editor8.element.$, 'editor8 instance element doesn\'t match' );
|
||||
},
|
||||
|
||||
test_add : function()
|
||||
{
|
||||
var textarea = CKEDITOR.dom.element.createFromHtml( '<textarea id="test_add"><p>test_add</p><\/textarea>' );
|
||||
textarea.appendTo( new CKEDITOR.dom.element( document.body ) );
|
||||
|
||||
var editor = new CKEDITOR.editor( {}, textarea, CKEDITOR.ELEMENT_MODE_REPLACE );
|
||||
|
||||
CKEDITOR.add( editor );
|
||||
|
||||
assert.areSame( editor, CKEDITOR.instances.test_add );
|
||||
},
|
||||
|
||||
setUp : function()
|
||||
{
|
||||
removeAllInstances();
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<textarea id="editor1" cols="80" rows="10"></textarea>
|
||||
<textarea name="editor2" cols="80" rows="10"></textarea>
|
||||
<textarea id="editor3" name="editor3" class="myclass" cols="80" rows="10"></textarea>
|
||||
<textarea name="editor4" class="myclass" cols="80" rows="10"></textarea>
|
||||
<textarea id="editor5" cols="80" rows="10"></textarea>
|
||||
<textarea id="editor6" cols="80" rows="10"></textarea>
|
||||
<textarea id="editor7" cols="80" rows="10"></textarea>
|
||||
<textarea id="editor8" cols="80" rows="10"></textarea>
|
||||
<textarea id="editor9" cols="80" rows="10"></textarea>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,126 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.dom.document</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert,
|
||||
arrayAssert = YAHOO.util.ArrayAssert;
|
||||
|
||||
return {
|
||||
test_$ : function()
|
||||
{
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
assert.areSame( document, doc.$ );
|
||||
},
|
||||
|
||||
test_appendStyleSheet : function()
|
||||
{
|
||||
var cssUrl = CKEDITOR.basePath + '_tests/';
|
||||
cssUrl += '_assets/sample.css';
|
||||
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
doc.appendStyleSheet( cssUrl );
|
||||
|
||||
var links = document.getElementsByTagName( 'link' );
|
||||
|
||||
for ( var i = 0 ; i < links.length ; i++ )
|
||||
{
|
||||
if ( links[i].href == cssUrl )
|
||||
return ;
|
||||
}
|
||||
|
||||
assert.fail( 'The link element was not found' );
|
||||
},
|
||||
|
||||
test_equals1 : function()
|
||||
{
|
||||
// Actually checks the real need for equals().
|
||||
var doc1 = new CKEDITOR.dom.document( document );
|
||||
assert.isFalse( doc1 == document );
|
||||
},
|
||||
|
||||
test_equals2 : function()
|
||||
{
|
||||
// Actually checks the real need for equals().
|
||||
var doc1 = new CKEDITOR.dom.document( document );
|
||||
var doc2 = new CKEDITOR.dom.document( document );
|
||||
assert.isFalse( doc1 == doc2, 'doc1 == doc2' );
|
||||
},
|
||||
|
||||
test_equals3 : function()
|
||||
{
|
||||
var doc1 = new CKEDITOR.dom.document( document );
|
||||
var doc2 = new CKEDITOR.dom.document( document );
|
||||
assert.isTrue( doc1.equals( doc2 ), 'doc1.equals( doc2 )' );
|
||||
assert.isTrue( doc2.equals( doc1 ), 'doc2.equals( doc1 )' );
|
||||
},
|
||||
|
||||
test_getById1 : function()
|
||||
{
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
var element = doc.getById( 'test1' );
|
||||
assert.areSame( document.getElementById( 'test1' ), element.$ );
|
||||
},
|
||||
|
||||
test_getById2 : function()
|
||||
{
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
var element = doc.getById( 'test_invalid' );
|
||||
assert.isNull( element );
|
||||
},
|
||||
|
||||
test_getHead : function()
|
||||
{
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
assert.areSame( document.getElementsByTagName( 'head' )[0], doc.getHead().$ );
|
||||
},
|
||||
|
||||
test_getBody : function()
|
||||
{
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
assert.areSame( document.body, doc.getBody().$, '1st call failed' );
|
||||
assert.areSame( document.body, doc.getBody().$, '2nd call failed' );
|
||||
},
|
||||
test_createText : function()
|
||||
{
|
||||
var doc = new CKEDITOR.dom.document( document ), contentText = 'text content';
|
||||
var textNode = doc.createText( contentText );
|
||||
assert.areSame( contentText, textNode.getText(),
|
||||
'Create text node content doesn\'t match.' );
|
||||
},
|
||||
|
||||
test_getByAddress1 : function()
|
||||
{
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
var node = doc.getByAddress( [ 1, 1, 0, 1, 0, 0 ] );
|
||||
assert.areSame( 'target', node.getText(),
|
||||
'Addressing target doesn\'t match.' );
|
||||
},
|
||||
|
||||
test_getElementsByTag : function()
|
||||
{
|
||||
var nodeList = new CKEDITOR.dom.document( document ).getElementsByTag( 'span' ),
|
||||
results = [];
|
||||
for( var i = 0; i < nodeList.count(); i++ ){
|
||||
results.push( nodeList.getItem( i ).$ );
|
||||
}
|
||||
arrayAssert.itemsAreEqual( results, document.getElementsByTagName( 'span' ) );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body><div id="test1"></div><div><p>text<span><b id="addressTarget1">target</b>text</span>text</p></div><span ><b id="addressTarget2">target</b></span></body>
|
||||
</html>
|
||||
@@ -1,292 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.dom.documentFragment</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
var tc;
|
||||
CKEDITOR.test.addTestCase( tc = ( function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = YAHOO.util.Assert,
|
||||
doc = CKEDITOR.document;
|
||||
|
||||
return {
|
||||
|
||||
test_appendTo : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner =
|
||||
new CKEDITOR.dom.element( 'b' );
|
||||
frag.append( inner );
|
||||
var container = CKEDITOR.document.getById( 'fragmentContainer1' );
|
||||
frag.appendTo( container );
|
||||
assert.isTrue( container.getLast().equals( inner ) );
|
||||
},
|
||||
|
||||
test_append : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner =
|
||||
new CKEDITOR.dom.element( 'b' );
|
||||
frag.append( inner );
|
||||
var container = CKEDITOR.document.getById( 'fragmentContainer3' );
|
||||
container.append( frag );
|
||||
assert.isTrue( container.getLast().equals( inner ) );
|
||||
},
|
||||
|
||||
test_getFirst : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner =
|
||||
new CKEDITOR.dom.element( 'b' );
|
||||
frag.append( inner );
|
||||
var first = frag.getFirst();
|
||||
assert.isTrue( first.equals( inner ) );
|
||||
},
|
||||
|
||||
test_getLast : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner =
|
||||
new CKEDITOR.dom.element( 'b' ), lastInner = inner.clone();
|
||||
frag.append( inner );
|
||||
frag.append( lastInner );
|
||||
var last = frag.getLast();
|
||||
assert.isTrue( last.equals( lastInner ) );
|
||||
},
|
||||
|
||||
test_moveChildren : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner1 = new CKEDITOR.dom.element( 'b' ),
|
||||
inner2 = new CKEDITOR.dom.element( 'i' );
|
||||
frag.append( inner1 );
|
||||
frag.append( inner2 );
|
||||
|
||||
// Move to element
|
||||
var element = new CKEDITOR.dom.element( 'span' );
|
||||
frag.moveChildren( element, true );
|
||||
assert.isTrue( element.getFirst().equals( inner1 ) );
|
||||
assert.isTrue( element.getLast().equals( inner2 ) );
|
||||
},
|
||||
|
||||
test_moveChildren2 : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner1 = new CKEDITOR.dom.element( 'b' ),
|
||||
inner2 = new CKEDITOR.dom.element( 'i' );
|
||||
frag.append( inner1 );
|
||||
frag.append( inner2 );
|
||||
|
||||
// Move to fragment
|
||||
var anotherFrag = new CKEDITOR.dom.documentFragment(
|
||||
CKEDITOR.document );
|
||||
frag.moveChildren( anotherFrag, true );
|
||||
assert.isTrue( anotherFrag.getFirst().equals( inner1 ) );
|
||||
assert.isTrue( anotherFrag.getLast().equals( inner2 ) );
|
||||
},
|
||||
|
||||
test_appendText : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( 'script' );
|
||||
element.appendText( 'Test appendText' );
|
||||
assert.areEqual( 'Test appendText', element.$.text );
|
||||
},
|
||||
|
||||
test_ltrim : function()
|
||||
{
|
||||
// IE need special treatement to setup this tc, see
|
||||
// next tc for this.
|
||||
if ( CKEDITOR.env.ie )
|
||||
return;
|
||||
var element = CKEDITOR.dom.element.createFromHtml(
|
||||
'<div id="trimTarget">\t\ntext\t\n</div>'
|
||||
);
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
element.moveChildren( frag );
|
||||
frag.ltrim();
|
||||
var ct = new CKEDITOR.dom.element( 'div' );
|
||||
ct.append( frag );
|
||||
assert.areSame( 'text\t\n', ct.getText() );
|
||||
},
|
||||
|
||||
test_ltrim_ie : function()
|
||||
{
|
||||
if ( !CKEDITOR.env.ie )
|
||||
return;
|
||||
// IE dom operation will trim preceding empty text,
|
||||
// here we use 'splitText' way to create leading spaces
|
||||
// instead for testing.
|
||||
var emptyTextNode = doc.createText( '@ \ttext\t ');
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( doc );
|
||||
frag.append( emptyTextNode );
|
||||
frag.getFirst().$.splitText( 1 );
|
||||
frag.getFirst().remove();
|
||||
frag.ltrim();
|
||||
var ct = new CKEDITOR.dom.element( 'div' );
|
||||
ct.append( frag );
|
||||
assert.areSame( 'text\t ', ct.getText() );
|
||||
},
|
||||
|
||||
test_rtrim : function()
|
||||
{
|
||||
if ( CKEDITOR.env.ie )
|
||||
return;
|
||||
var element = CKEDITOR.dom.element.createFromHtml(
|
||||
'<div id="trimTarget">\t\ntext\t\n</div>'
|
||||
);
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
element.moveChildren( frag );
|
||||
frag.rtrim();
|
||||
var ct = new CKEDITOR.dom.element( 'div' );
|
||||
ct.append( frag );
|
||||
|
||||
assert.areSame( '\t\ntext', ct.getText() );
|
||||
},
|
||||
|
||||
/**
|
||||
*@see test_ltrim_ie
|
||||
*/
|
||||
test_rtrim_ie : function()
|
||||
{
|
||||
if ( !CKEDITOR.env.ie )
|
||||
return;
|
||||
var emptyTextNode = doc.createText( '@ \ttext\t ');
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( doc );
|
||||
frag.append( emptyTextNode );
|
||||
frag.getFirst().$.splitText( 1 );
|
||||
frag.getFirst().remove();
|
||||
frag.rtrim();
|
||||
var ct = new CKEDITOR.dom.element( 'div' );
|
||||
ct.append( frag );
|
||||
assert.areSame( ' \ttext', ct.getText() );
|
||||
},
|
||||
|
||||
|
||||
test_trim : function()
|
||||
{
|
||||
if ( !CKEDITOR.env.ie )
|
||||
return;
|
||||
var element = CKEDITOR.dom.element.createFromHtml(
|
||||
'<div id="trimTarget">\t\ntext\t\n</div>'
|
||||
);
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
element.moveChildren( frag );
|
||||
frag.trim();
|
||||
var ct = new CKEDITOR.dom.element( 'div' );
|
||||
ct.append( frag );
|
||||
assert.areSame( 'text', ct.getText() );
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
*@see test_ltrim_ie
|
||||
*/
|
||||
test_trim_ie : function()
|
||||
{
|
||||
if ( !CKEDITOR.env.ie )
|
||||
return;
|
||||
var emptyTextNode = doc.createText( '@ \t\ntext\t\n ');
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( doc );
|
||||
frag.append( emptyTextNode );
|
||||
frag.getFirst().$.splitText( 1 );
|
||||
frag.getFirst().remove();
|
||||
frag.trim();
|
||||
var ct = new CKEDITOR.dom.element( 'div' );
|
||||
ct.append( frag );
|
||||
assert.areSame( 'text', ct.getText() );
|
||||
},
|
||||
|
||||
test_insertAfter : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner = new CKEDITOR.dom.element( 'b' );
|
||||
frag.append( inner );
|
||||
var container = CKEDITOR.document.getById( 'fragmentContainer2' );
|
||||
var sibling = CKEDITOR.document.getById( 'fragmentSibling1' );
|
||||
frag.insertAfterNode( sibling );
|
||||
assert.isTrue( container.getLast().equals( inner ) );
|
||||
},
|
||||
|
||||
test_getChildCount : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner1 = new CKEDITOR.dom.element( 'b' ),
|
||||
inner2 = new CKEDITOR.dom.element( 'i' );
|
||||
frag.append( inner1 );
|
||||
frag.append( inner2 );
|
||||
|
||||
assert.areEqual( 2, frag.getChildCount() );
|
||||
},
|
||||
|
||||
test_getChild : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner1 = new CKEDITOR.dom.element( 'b' ),
|
||||
inner2 = new CKEDITOR.dom.element( 'i' );
|
||||
frag.append( inner1 );
|
||||
frag.append( inner2 );
|
||||
|
||||
assert.isTrue( inner2.equals( frag.getChild( 1 ) ) );
|
||||
},
|
||||
|
||||
test_getChildren : function()
|
||||
{
|
||||
var frag =
|
||||
new CKEDITOR.dom.documentFragment( CKEDITOR.document );
|
||||
var inner1 = new CKEDITOR.dom.element( 'b' ),
|
||||
inner2 = new CKEDITOR.dom.element( 'i' );
|
||||
frag.append( inner1 );
|
||||
frag.append( inner2 );
|
||||
|
||||
var childNodesList = frag.getChildren();
|
||||
assert.areEqual( 2, childNodesList.count() );
|
||||
assert.isTrue( inner2.equals( childNodesList.getItem( 1 ) ) );
|
||||
},
|
||||
|
||||
test_getDocument : function()
|
||||
{
|
||||
var doc = CKEDITOR.document,
|
||||
innerDoc = new CKEDITOR.dom.document(
|
||||
doc.getById( 'innerFrame' ).$.contentWindow.document );
|
||||
var frag1 = new CKEDITOR.dom.documentFragment( doc ),
|
||||
frag2 = new CKEDITOR.dom.documentFragment( innerDoc );
|
||||
|
||||
assert.isTrue( doc.equals( frag1.getDocument() ) );
|
||||
assert.isTrue( innerDoc.equals( frag2.getDocument() ) );
|
||||
},
|
||||
|
||||
name :document.title
|
||||
};
|
||||
} )() );
|
||||
|
||||
//window.onload = tc.test_rtrim_ie;
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="fragmentContainer1"></div>
|
||||
<div id="fragmentContainer2"><div id="fragmentSibling1"></div></div>
|
||||
<div id="fragmentContainer3"></div>
|
||||
<iframe id="innerFrame" name="innerFrame" src="about:blank"></iframe>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,637 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.dom.element</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
var getInnerHtml = CKEDITOR.test.getInnerHtml;
|
||||
|
||||
return {
|
||||
test_$ : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
assert.areSame( document.getElementById( 'test1' ), element.$ );
|
||||
},
|
||||
|
||||
test_getId1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
assert.areEqual( 'test1', element.getId() );
|
||||
},
|
||||
|
||||
test_getId2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementsByTagName( 'div' )[0] );
|
||||
assert.isNull( element.getId() );
|
||||
},
|
||||
|
||||
test_getNameAtt1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementsByName( 'named1' )[0] );
|
||||
assert.areEqual( 'named1', element.getNameAtt() );
|
||||
},
|
||||
|
||||
test_getNameAtt2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
assert.isNull( element.getNameAtt() );
|
||||
},
|
||||
|
||||
test_getName : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
assert.areEqual( 'textarea', element.getName(), 'First call' );
|
||||
assert.areEqual( 'textarea', element.getName(), 'Second call' );
|
||||
},
|
||||
|
||||
test_hide : function()
|
||||
{
|
||||
var nativeElement = document.getElementById( 'test1' );
|
||||
nativeElement.style.display = '';
|
||||
|
||||
var element = new CKEDITOR.dom.element( nativeElement );
|
||||
element.hide();
|
||||
|
||||
assert.areEqual( 'none', nativeElement.style.display );
|
||||
},
|
||||
|
||||
test_show : function()
|
||||
{
|
||||
var nativeElement = document.getElementById( 'test1' );
|
||||
nativeElement.style.display = '';
|
||||
|
||||
var element = new CKEDITOR.dom.element( nativeElement );
|
||||
element.show();
|
||||
|
||||
assert.areEqual( '', nativeElement.style.display );
|
||||
},
|
||||
|
||||
test_createFromHtml : function()
|
||||
{
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<p>My test</p>' );
|
||||
assert.areEqual( 'p', element.getName(), 'element name doesn\'t match' );
|
||||
assert.areEqual( 'My test', element.$.innerHTML, 'the innerHTML doesn\'t match' );
|
||||
},
|
||||
|
||||
test_createFromHtml2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element.createFromHtml( '<div><x:x><p>Test</p></div>' );
|
||||
assert.areNotEqual( 'Test', element.getChild( 0, 0 ).innerHTML );
|
||||
},
|
||||
|
||||
test_append1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
element.append( new CKEDITOR.dom.element( 'b' ) );
|
||||
assert.areEqual( 'b', document.getElementById( 'append' ).firstChild.nodeName.toLowerCase() );
|
||||
},
|
||||
|
||||
test_append2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
element.append( 'i' );
|
||||
assert.areEqual( 'i', document.getElementById( 'append' ).lastChild.nodeName.toLowerCase() );
|
||||
},
|
||||
|
||||
test_appendText1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
element.setHtml( '' );
|
||||
element.appendText( 'Test appendText' );
|
||||
assert.areEqual( 'Test appendText', document.getElementById( 'append' ).innerHTML );
|
||||
},
|
||||
|
||||
test_appendText2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( 'script' );
|
||||
element.appendText( 'Test appendText' );
|
||||
assert.areEqual( 'Test appendText', element.$.text );
|
||||
},
|
||||
|
||||
test_setHtml : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
element.setHtml( '<b>Test</b>' );
|
||||
assert.areEqual( '<b>test</b>', document.getElementById( 'append' ).innerHTML.toLowerCase(), 'First call doesn\'t match' );
|
||||
element.setHtml( 'Another test' );
|
||||
assert.areEqual( 'Another test', document.getElementById( 'append' ).innerHTML, 'Second call doesn\'t match' );
|
||||
},
|
||||
|
||||
test_getDocument1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( 'div' );
|
||||
assert.areSame( document, element.getDocument().$, 'First call' );
|
||||
assert.areSame( document, element.getDocument().$, 'Second call' );
|
||||
},
|
||||
|
||||
test_getDocument2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.body );
|
||||
assert.areSame( document, element.getDocument().$, 'First call' );
|
||||
assert.areSame( document, element.getDocument().$, 'Second call' );
|
||||
},
|
||||
|
||||
test_getFirst1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
element.setHtml( '<b>Test</b>' );
|
||||
var first = element.getFirst();
|
||||
assert.areSame( 'b', first.getName() );
|
||||
},
|
||||
|
||||
test_getFirst2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
element.setHtml( 'Test' );
|
||||
var first = element.getFirst();
|
||||
assert.areSame( 'Test', first.$.nodeValue );
|
||||
},
|
||||
|
||||
test_getFirst3 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
element.setHtml( '' );
|
||||
var first = element.getFirst();
|
||||
assert.isNull( first );
|
||||
},
|
||||
|
||||
test_setAttribute1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
element.setAttribute( 'class', 'Test' );
|
||||
|
||||
assert.areSame( 'Test', document.getElementById( 'test1' ).className );
|
||||
},
|
||||
|
||||
test_setAttribute2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
element.setAttribute( 'style', 'position: absolute;' );
|
||||
|
||||
assert.areEqual( 'position: absolute;', CKEDITOR.test.getAttribute( element, 'style' ) );
|
||||
},
|
||||
|
||||
test_setAttribute3 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
element.setAttribute( 'name', 'TestName' );
|
||||
|
||||
assert.areEqual( 'TestName', document.getElementById( 'test1' ).name );
|
||||
},
|
||||
|
||||
test_setAttribute4 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
element.setAttribute( 'rows', 5 );
|
||||
|
||||
assert.areEqual( 5, document.getElementById( 'test1' ).rows );
|
||||
},
|
||||
|
||||
test_setAttributes : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'test2' ) );
|
||||
element.setAttributes({
|
||||
'class' : 'Test',
|
||||
'style' : 'position: absolute;',
|
||||
'name' : 'TestName',
|
||||
'rows' : 5 });
|
||||
|
||||
assert.areSame( 'Test', document.getElementById( 'test1' ).className, 'class is wrong' );
|
||||
assert.areEqual( 'position: absolute;', CKEDITOR.test.getAttribute( element, 'style'), 'style is wrong' );
|
||||
assert.areEqual( 'TestName', document.getElementById( 'test1' ).name, 'name is wrong' );
|
||||
assert.areEqual( 5, document.getElementById( 'test1' ).rows, 'rows is wrong' );
|
||||
},
|
||||
|
||||
test_setStyle1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'setStyle' ) );
|
||||
element.setStyle( 'position', 'absolute' );
|
||||
|
||||
assert.areEqual( 'absolute', document.getElementById( 'setStyle' ).style.position );
|
||||
},
|
||||
|
||||
test_setStyle2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'setStyle' ) );
|
||||
element.setStyle( 'float', 'right' );
|
||||
|
||||
assert.areEqual( 'right', document.getElementById( 'setStyle' ).style.cssFloat );
|
||||
},
|
||||
|
||||
test_setStyles : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'setStyle' ) );
|
||||
element.setStyles({
|
||||
'position' : 'absolute',
|
||||
'float' : 'right'
|
||||
});
|
||||
|
||||
assert.areEqual( 'absolute', document.getElementById( 'setStyle' ).style.position );
|
||||
assert.areEqual( 'right', document.getElementById( 'setStyle' ).style.cssFloat );
|
||||
},
|
||||
|
||||
test_setText1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'setText' ) );
|
||||
element.setText( 'A & B' );
|
||||
assert.areSame( 'A & B', document.getElementById( 'setText' ).innerHTML );
|
||||
},
|
||||
|
||||
test_setText2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'setText' ) );
|
||||
element.setText( 'C & D' );
|
||||
assert.areSame( 'C & D', document.getElementById( 'setText' ).innerHTML );
|
||||
},
|
||||
|
||||
test_addClass1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( 'div' );
|
||||
element.addClass( 'classA' );
|
||||
assert.areSame( 'classA', element.$.className );
|
||||
},
|
||||
|
||||
test_addClass2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( 'div' );
|
||||
element.addClass( 'classA' );
|
||||
element.addClass( 'classA' );
|
||||
assert.areSame( 'classA', element.$.className );
|
||||
},
|
||||
|
||||
test_addClass3 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( 'div' );
|
||||
element.addClass( 'classA' );
|
||||
element.addClass( 'classB' );
|
||||
element.addClass( 'classC' );
|
||||
assert.areSame( 'classA classB classC', element.$.className );
|
||||
},
|
||||
|
||||
test_addClass4 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( 'div' );
|
||||
element.addClass( 'classA' );
|
||||
element.addClass( 'classB' );
|
||||
element.addClass( 'classC' );
|
||||
element.addClass( 'classA' );
|
||||
element.addClass( 'classB' );
|
||||
element.addClass( 'classC' );
|
||||
assert.areSame( 'classA classB classC', element.$.className );
|
||||
},
|
||||
|
||||
test_removeClass1 : function()
|
||||
{
|
||||
document.getElementById( 'removeClass' ).innerHTML = '';
|
||||
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<div class="classA"></div>' );
|
||||
element.appendTo( new CKEDITOR.dom.element( document.getElementById( 'removeClass' ) ) );
|
||||
|
||||
assert.areSame( '<div class="classa"></div>', getInnerHtml( 'removeClass' ) );
|
||||
element.removeClass( 'classA' );
|
||||
assert.areSame( '<div></div>', getInnerHtml( 'removeClass' ) );
|
||||
},
|
||||
|
||||
test_removeClass2 : function()
|
||||
{
|
||||
document.getElementById( 'removeClass' ).innerHTML = '';
|
||||
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<div class="classA classB classC classD"></div>' );
|
||||
element.appendTo( new CKEDITOR.dom.element( document.getElementById( 'removeClass' ) ) );
|
||||
|
||||
assert.areSame( '<div class="classa classb classc classd"></div>', getInnerHtml( 'removeClass' ) );
|
||||
element.removeClass( 'classA' );
|
||||
assert.areSame( '<div class="classb classc classd"></div>', getInnerHtml( 'removeClass' ) );
|
||||
element.removeClass( 'classC' );
|
||||
assert.areSame( '<div class="classb classd"></div>', getInnerHtml( 'removeClass' ) );
|
||||
element.removeClass( 'classD' );
|
||||
assert.areSame( '<div class="classb"></div>', getInnerHtml( 'removeClass' ) );
|
||||
element.removeClass( 'classB' );
|
||||
assert.areSame( '<div></div>', getInnerHtml( 'removeClass' ) );
|
||||
},
|
||||
|
||||
test_removeClass3 : function()
|
||||
{
|
||||
document.getElementById( 'removeClass' ).innerHTML = '';
|
||||
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<div class="classA classB"></div>' );
|
||||
element.appendTo( new CKEDITOR.dom.element( document.getElementById( 'removeClass' ) ) );
|
||||
|
||||
assert.areSame( '<div class="classa classb"></div>', getInnerHtml( 'removeClass' ) );
|
||||
element.removeClass( 'classXXX' );
|
||||
assert.areSame( '<div class="classa classb"></div>', getInnerHtml( 'removeClass' ) );
|
||||
element.removeClass( 'classB' );
|
||||
assert.areSame( '<div class="classa"></div>', getInnerHtml( 'removeClass' ) );
|
||||
element.removeClass( 'classYYY' );
|
||||
assert.areSame( '<div class="classa"></div>', getInnerHtml( 'removeClass' ) );
|
||||
},
|
||||
|
||||
test_removeAttribute1 : function()
|
||||
{
|
||||
document.getElementById( 'removeClass' ).innerHTML = '';
|
||||
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<div class="classA"></div>' );
|
||||
element.appendTo( new CKEDITOR.dom.element( document.getElementById( 'removeClass' ) ) );
|
||||
|
||||
element.removeAttribute( 'class' );
|
||||
assert.areSame( '<div></div>', getInnerHtml( 'removeClass' ) );
|
||||
},
|
||||
|
||||
test_removeAttribute2 : function()
|
||||
{
|
||||
document.getElementById( 'removeClass' ).innerHTML = '';
|
||||
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<div style="position:absolute"></div>' );
|
||||
element.appendTo( new CKEDITOR.dom.element( document.getElementById( 'removeClass' ) ) );
|
||||
|
||||
element.removeAttribute( 'style' );
|
||||
assert.areSame( '<div></div>', getInnerHtml( 'removeClass' ) );
|
||||
},
|
||||
|
||||
test_removeAttribute3 : function()
|
||||
{
|
||||
document.getElementById( 'removeClass' ).innerHTML = '';
|
||||
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<div title="Test"></div>' );
|
||||
element.appendTo( new CKEDITOR.dom.element( document.getElementById( 'removeClass' ) ) );
|
||||
|
||||
element.removeAttribute( 'title' );
|
||||
assert.areSame( '<div></div>', getInnerHtml( 'removeClass' ) );
|
||||
},
|
||||
|
||||
test_remove : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'removeInner' ) );
|
||||
element.remove();
|
||||
|
||||
assert.areSame( '', getInnerHtml( 'removeOuter' ) );
|
||||
},
|
||||
|
||||
test_getAttribute_tabindex1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndex10' ) );
|
||||
assert.areEqual( 10, CKEDITOR.test.getAttribute( element, 'tabindex' ) );
|
||||
},
|
||||
|
||||
test_getAttribute_tabindex2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexDef' ) );
|
||||
assert.isNull( CKEDITOR.test.getAttribute( element, 'tabindex' ) );
|
||||
},
|
||||
|
||||
test_getAttribute_tabindex3 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexInputDef' ) );
|
||||
assert.isNull( CKEDITOR.test.getAttribute( element, 'tabindex' ) );
|
||||
},
|
||||
|
||||
test_getAttribute_tabindex4 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexInput20' ) );
|
||||
assert.areEqual( 20, CKEDITOR.test.getAttribute( element, 'tabindex' ) );
|
||||
},
|
||||
|
||||
test_getAttribute_tabindex5 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexScriptDef' ) );
|
||||
assert.areEqual( null, CKEDITOR.test.getAttribute( element, 'tabindex' ) );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test getAttribute and getAttribute will ingore '_cke_expando' attribute.
|
||||
*/
|
||||
test_getAttribute_ignoreExpandoAttributes : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'testExpandoAttributes' ) );
|
||||
|
||||
assert.areEqual( 1, CKEDITOR.test.getAttribute( element, 'tabindex' ), 'tabindex is wrong' );
|
||||
element.removeAttribute( 'tabindex' );
|
||||
|
||||
assert.areEqual( 'hasExpando', CKEDITOR.test.getAttribute( element, 'class' ), 'class is wrong' );
|
||||
element.removeAttribute( 'class' );
|
||||
|
||||
assert.areEqual( 'float: right;', CKEDITOR.test.getAttribute( element, 'style' ) );
|
||||
|
||||
element.removeAttribute( 'style' );
|
||||
element.removeAttribute( 'id' );
|
||||
assert.isFalse( element.hasAttributes(), 'hasAttributes should be false' );
|
||||
},
|
||||
|
||||
test_getTabIndex1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndex10' ) );
|
||||
assert.areSame( 10, element.getTabIndex() );
|
||||
},
|
||||
|
||||
test_getTabIndex2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexDef' ) );
|
||||
assert.areSame( -1, element.getTabIndex() );
|
||||
},
|
||||
|
||||
test_getTabIndex3 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexInputDef' ) );
|
||||
assert.areSame( 0, element.getTabIndex() );
|
||||
},
|
||||
|
||||
test_getTabIndex4 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexInput20' ) );
|
||||
assert.areSame( 20, element.getTabIndex() );
|
||||
},
|
||||
|
||||
test_getTabIndex5 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'tabIndexScriptDef' ) );
|
||||
assert.areSame( -1, element.getTabIndex() );
|
||||
},
|
||||
|
||||
test_private1 : function()
|
||||
{
|
||||
var a = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
var b = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
|
||||
assert.areSame( a.getPrivate(), b.getPrivate() );
|
||||
},
|
||||
|
||||
test_private2 : function()
|
||||
{
|
||||
var a = new CKEDITOR.dom.element( document.getElementById( 'test1' ) );
|
||||
var b = new CKEDITOR.dom.element( document.getElementById( 'test2' ) );
|
||||
|
||||
assert.areNotSame( a.getPrivate(), b.getPrivate() );
|
||||
},
|
||||
|
||||
test_getText1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'getText' ) );
|
||||
|
||||
// IE gives us a different result, which is ok for us (see code comments).
|
||||
if ( CKEDITOR.env.ie )
|
||||
assert.areSame( 'Some \nsample text for testing', element.getText().replace( /\r\n|\r/g, '\n' ) );
|
||||
else
|
||||
assert.areSame( 'Some sample text for testing', element.getText() );
|
||||
},
|
||||
|
||||
test_getText2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'getText2' ).getElementsByTagName( 'b' )[0] );
|
||||
assert.areSame( ' ', element.getText() );
|
||||
},
|
||||
|
||||
test_getText3 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'getText3' ) );
|
||||
|
||||
// IE gives us a different result, which is ok for us (see code comments).
|
||||
if ( CKEDITOR.env.ie )
|
||||
assert.areSame( 'A B', element.getText() );
|
||||
else
|
||||
assert.areSame( 'A\nB', element.getText().replace( /\r\n|\r/g, '\n' ) );
|
||||
},
|
||||
|
||||
test_hasAttributes1 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementsByTagName( 'big' )[0] );
|
||||
assert.isFalse( element.hasAttributes() );
|
||||
},
|
||||
|
||||
test_hasAttributes2 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementsByTagName( 'small' )[0] );
|
||||
assert.isTrue( element.hasAttributes() );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test detecting of 'class' attribute in IE6/7.
|
||||
*/
|
||||
test_hasAttributes_4075 : function()
|
||||
{
|
||||
if ( !CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) )
|
||||
return;
|
||||
var element = new CKEDITOR.dom.element( 'span' );
|
||||
element.setAttribute( 'class', 'value' );
|
||||
assert.isTrue( element.hasAttributes(), 'Failed to detect "class" attribute existence.' );
|
||||
},
|
||||
|
||||
test_getDocumentPosition : function()
|
||||
{
|
||||
// Assign the page location of the element.
|
||||
YAHOO.util.Dom.setXY('DocPositionTarget', [ 350, 450 ] );
|
||||
var pos = CKEDITOR.document.getById( 'DocPositionTarget' ).getDocumentPosition();
|
||||
if ( !CKEDITOR.env.ie || CKEDITOR.env.ie8 )
|
||||
{
|
||||
assert.areEqual( 350, pos.x, 'Position coordinates:x relative to document doesn\'t match.' );
|
||||
assert.areEqual( 450, pos.y, 'Position coordinates:y relative to document doesn\'t match.' );
|
||||
}
|
||||
else
|
||||
{
|
||||
assert.isTrue( pos.x == 348 || pos.x == 349, 'Position coordinates:x relative to document doesn\'t match.' );
|
||||
assert.areEqual( 448, pos.y, 'Position coordinates:y relative to document doesn\'t match.' );
|
||||
}
|
||||
},
|
||||
|
||||
// Test get last non-spaces child node.
|
||||
test_getLast : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
var span1 = new CKEDITOR.dom.element( 'span' );
|
||||
element.append( span1 );
|
||||
element.append( new CKEDITOR.dom.text( ' ' ) );
|
||||
element.append( new CKEDITOR.dom.text( ' ' ) );
|
||||
var last = element.getLast( CKEDITOR.dom.walker.whitespaces( true ) );
|
||||
assert.areSame( span1.$, last.$ );
|
||||
},
|
||||
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
<style type="text/css" media="screen">
|
||||
#test-computed {
|
||||
width:50%;
|
||||
margin:auto;
|
||||
padding:10px;
|
||||
z-index: 2;
|
||||
}
|
||||
.scroll
|
||||
{
|
||||
overflow: visible;
|
||||
}
|
||||
.block1
|
||||
{
|
||||
width: 100%;
|
||||
height: 100px;
|
||||
background-color: blue;
|
||||
text-align: center;
|
||||
}
|
||||
.block2
|
||||
{
|
||||
margin: auto;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
background-color: green;
|
||||
position : relative;
|
||||
}
|
||||
.block3
|
||||
{
|
||||
position: absolute;
|
||||
float:right;
|
||||
width: 300px;
|
||||
height: 300px;
|
||||
background-color: black;
|
||||
}
|
||||
.block4
|
||||
{
|
||||
position: absolute;
|
||||
left: 50px;
|
||||
right: 50px;
|
||||
width: 400px;
|
||||
height: 400px;
|
||||
background-color: pink;
|
||||
}
|
||||
#DocPositionTarget
|
||||
{
|
||||
background-color: red;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<textarea id="test1" rows="10" cols="80"></textarea>
|
||||
<textarea id="test2" rows="10" cols="80"></textarea>
|
||||
<textarea name="named1" rows="10" cols="80"></textarea>
|
||||
<div>Test</div>
|
||||
<div id="append"></div>
|
||||
<div id="setStyle"></div>
|
||||
<div id="setText"></div>
|
||||
<div id="removeClass"></div>
|
||||
<div id="removeOuter"><b id="removeInner"></b></div>
|
||||
<div id="tabIndex10" tabindex="10"></div>
|
||||
<div id="testExpandoAttributes" _cke_expando ="1" class="hasExpando" tabindex="1" style="float:right"></div>
|
||||
<div id="tabIndexDef"></div>
|
||||
<input id="tabIndexInputDef" />
|
||||
<input id="tabIndexInput20" tabindex="20" />
|
||||
<script id="tabIndexScriptDef" type="text/javascript"></script>
|
||||
<div id="getText">Some <br /><b> sample text</b> for <i> testing</i></div>
|
||||
<div id="getText2">A<b> </b>B</div>
|
||||
<div id="getText3">A
|
||||
B</div>
|
||||
<big>Test</big>
|
||||
<small title="Testing">Test</small>
|
||||
|
||||
<div class="block1 scroll" id="block1"><div class="block2 scroll" id="block2"><div class="block3 scroll" id="block3"><div class="block4 scroll" id="block4"><div id="DocPositionTarget">target</div></div></div></div></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,164 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.dom.node</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
var tc;
|
||||
CKEDITOR.test.addTestCase( tc = (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_getPosition1 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );
|
||||
},
|
||||
|
||||
test_getPosition2 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );
|
||||
},
|
||||
|
||||
test_getPosition3 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0] );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );
|
||||
},
|
||||
|
||||
test_getPosition4 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0] );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );
|
||||
},
|
||||
|
||||
test_getPosition5 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'div' )[0] );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'div' )[0] );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_IDENTICAL, node1.getPosition( node2 ) );
|
||||
},
|
||||
|
||||
test_getPosition6 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0].firstChild );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );
|
||||
},
|
||||
|
||||
test_getPosition7 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0].firstChild );
|
||||
assert.areSame( CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );
|
||||
},
|
||||
|
||||
test_getPosition8 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0].firstChild );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0].firstChild );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );
|
||||
},
|
||||
|
||||
test_getPosition9 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0].firstChild );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0].firstChild );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );
|
||||
},
|
||||
|
||||
test_getPosition10 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0] );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'i' )[0] );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );
|
||||
},
|
||||
|
||||
test_getPosition11 : function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0] );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'i' )[0] );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_FOLLOWING, node2.getPosition( node1 ) );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test 'preceding' position.
|
||||
*/
|
||||
test_getPosition_3240: function()
|
||||
{
|
||||
var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'b' )[0].firstChild );
|
||||
var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'span' )[0].firstChild );
|
||||
|
||||
assert.areSame( CKEDITOR.POSITION_PRECEDING, node1.getPosition( node2 ) );
|
||||
},
|
||||
|
||||
// Test get previous non-spaces node.
|
||||
test_getPrevious : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
var span1 = new CKEDITOR.dom.element( 'span' );
|
||||
element.append( span1 );
|
||||
element.append( new CKEDITOR.dom.text( ' ' ) );
|
||||
var span2 = new CKEDITOR.dom.element( 'span' );
|
||||
element.append( span2 );
|
||||
var previous = span2.getPrevious( CKEDITOR.dom.walker.whitespaces( true ) );
|
||||
assert.areSame( span1.$, previous.$ );
|
||||
},
|
||||
|
||||
// Test get next non-spaces node.
|
||||
test_getNext : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element( document.getElementById( 'append' ) );
|
||||
var span1 = new CKEDITOR.dom.element( 'span' );
|
||||
element.append( span1 );
|
||||
element.append( new CKEDITOR.dom.text( ' ' ) );
|
||||
var span2 = new CKEDITOR.dom.element( 'span' );
|
||||
element.append( span2 );
|
||||
var next = span1.getNext( CKEDITOR.dom.walker.whitespaces( true ) );
|
||||
assert.areSame( span2.$, next.$ );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//window.onload = function()
|
||||
//{
|
||||
// var node1 = new CKEDITOR.dom.node( document.getElementsByTagName( 'h1' )[0] );
|
||||
// var node2 = new CKEDITOR.dom.node( document.getElementsByTagName( 'p' )[0] );
|
||||
//
|
||||
// alert( node1.getPosition( node2 ) );
|
||||
//};
|
||||
//window.onload = tc.test_getPosition6;
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div>
|
||||
<h1>Title</h1>
|
||||
<p><b>Sample</b> <i>Text</i></p>
|
||||
</div>
|
||||
<span>Another</span>
|
||||
<p id="append"></p>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1,128 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.dom.text</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
var tc;
|
||||
CKEDITOR.test.addTestCase( tc = (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
|
||||
test_substring1 : function()
|
||||
{
|
||||
var text = new CKEDITOR.dom.text( '0123456789' );
|
||||
|
||||
assert.areSame( '123', text.substring( 1, 4 ) );
|
||||
},
|
||||
|
||||
test_substring2 : function()
|
||||
{
|
||||
var text = new CKEDITOR.dom.text( '0123456789' );
|
||||
|
||||
assert.areSame( '56789', text.substring( 5 ) );
|
||||
},
|
||||
|
||||
test_substring3 : function()
|
||||
{
|
||||
var text = new CKEDITOR.dom.text( '0123456789' );
|
||||
|
||||
assert.areSame( '', text.substring( 1,1 ) );
|
||||
},
|
||||
|
||||
test_substring4 : function()
|
||||
{
|
||||
var text = new CKEDITOR.dom.text( '0123456789' );
|
||||
|
||||
assert.areSame( '012', text.substring( -10,3 ) );
|
||||
},
|
||||
|
||||
test_substring5 : function()
|
||||
{
|
||||
var text = new CKEDITOR.dom.text( '0123456789' );
|
||||
|
||||
assert.areSame( '89', text.substring( 8,100 ) );
|
||||
},
|
||||
|
||||
test_substring6 : function()
|
||||
{
|
||||
var text = new CKEDITOR.dom.text( '0123456789' );
|
||||
|
||||
assert.areSame( '234', text.substring( 5,2 ) );
|
||||
},
|
||||
|
||||
test_split1 : function()
|
||||
{
|
||||
var div = CKEDITOR.document.getById( 'playground' );
|
||||
div.setHtml( '01234' );
|
||||
|
||||
var text = div.getFirst(),
|
||||
next = text.split( 3 );
|
||||
|
||||
assert.areSame( '012', text.getText(), 'text.getText() is wrong' );
|
||||
assert.areSame( '34', next.getText(), 'next.getText() is wrong' );
|
||||
|
||||
assert.areSame( div.$, next.$.parentNode, 'parentNode is wrong' );
|
||||
assert.areSame( text.$, next.$.previousSibling, 'sibling is wrong' );
|
||||
},
|
||||
|
||||
test_split2 : function()
|
||||
{
|
||||
var div = CKEDITOR.document.getById( 'playground' );
|
||||
div.setHtml( '01234' );
|
||||
|
||||
var text = div.getFirst(),
|
||||
next = text.split( 5 );
|
||||
|
||||
assert.areSame( '01234', text.getText(), 'text.getText() is wrong' );
|
||||
assert.areSame( '', next.getText(), 'next.getText() is wrong' );
|
||||
|
||||
assert.areSame( div.$, next.$.parentNode, 'parentNode is wrong' );
|
||||
assert.areSame( text.$, next.$.previousSibling, 'sibling is wrong' );
|
||||
},
|
||||
|
||||
test_split3 : function()
|
||||
{
|
||||
var div = CKEDITOR.document.getById( 'playground' );
|
||||
div.setHtml( '01234' );
|
||||
|
||||
var text = div.getFirst(),
|
||||
next = text.split( 0 );
|
||||
|
||||
assert.areSame( '', text.getText(), 'text.getText() is wrong' );
|
||||
assert.areSame( '01234', next.getText(), 'next.getText() is wrong' );
|
||||
|
||||
assert.areSame( div.$, next.$.parentNode, 'parentNode is wrong' );
|
||||
assert.areSame( text.$, next.$.previousSibling, 'sibling is wrong' );
|
||||
},
|
||||
|
||||
test_split_3436 : function()
|
||||
{
|
||||
var parent = CKEDITOR.document.getById( 'playground2' );
|
||||
parent.setHtml( 'A B <b>C </b>D E' );
|
||||
parent.getFirst().split( 2 ); // Right before "B"
|
||||
parent.getChildren().getItem( 3 ).split( 2 ); // Right before "E"
|
||||
assert.areSame( 5, parent.getChildren().count(), 'Child nodes num doesn\'t match after split' );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//window.onload = tc.test_split_3436;
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p id="playground"></p>
|
||||
<p id="playground2"></p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,340 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.dom.walker</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
var tc;
|
||||
|
||||
CKEDITOR.test.addTestCase( tc = (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
|
||||
function assertNodesList( wanted, nodes )
|
||||
{
|
||||
var simplifiedNodes = [];
|
||||
|
||||
for ( var i = 0 ; i < nodes.length ; i++ )
|
||||
simplifiedNodes.push( nodes[i].type == CKEDITOR.NODE_TEXT ? nodes[i].getText() : ( '<' + nodes[i].getName() + '>' ) );
|
||||
|
||||
assert.areSame( wanted.toString(), simplifiedNodes.toString() );
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
test_collapsed : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>Test</p>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
|
||||
range.setStartAt( node.getFirst(), CKEDITOR.POSITION_AFTER_START );
|
||||
range.collapse( true );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
assert.isNull( walker.next() );
|
||||
},
|
||||
|
||||
test_next_1 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>This is <b>a <i>simple</i></b> test</p>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( node );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.next() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [ '<p>', 'This is ', '<b>', 'a ', '<i>', 'simple', ' test' ], nodes );
|
||||
},
|
||||
|
||||
test_next_2 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>This is <b>a <i>simple</i></b> test</p>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( node.getFirst(), CKEDITOR.POSITION_AFTER_START );
|
||||
range.setEnd( node.getChild( [0,1,1,0] ), 2 );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.next() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [ 'This is ', '<b>', 'a ', '<i>', 'si' ], nodes );
|
||||
},
|
||||
|
||||
test_next_3 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>Test</p><h1>More</h1>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( node.getChild( 1 ), CKEDITOR.POSITION_BEFORE_START );
|
||||
range.setEndAt( node.getChild( 1 ), CKEDITOR.POSITION_AFTER_START );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.next() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [ '<h1>' ], nodes );
|
||||
},
|
||||
|
||||
test_next_4 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>Test</p><h1>More</h1>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( node.getChild( 0 ), CKEDITOR.POSITION_BEFORE_END );
|
||||
range.setEndAt( node.getChild( 0 ), CKEDITOR.POSITION_AFTER_END );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.next() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [], nodes );
|
||||
},
|
||||
|
||||
test_next_5 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>Test</p><h1>More</h1>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( node.getChild( 0 ), CKEDITOR.POSITION_BEFORE_END );
|
||||
range.setEndAt( node.getChild( 1 ), CKEDITOR.POSITION_AFTER_START );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.next() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [ '<h1>' ], nodes );
|
||||
},
|
||||
|
||||
test_previous_1 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>This is <b>a <i>simple</i></b> test</p>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( node );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.previous() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [ '<p>', ' test', '<b>', '<i>', 'simple', 'a ', 'This is ' ], nodes );
|
||||
},
|
||||
|
||||
test_previous_2 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>This is <b>a <i>simple</i></b> test</p>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setEnd( node.getChild( [0,0] ), 2 );
|
||||
range.setEnd( node.getChild( [0,1,1,0] ), 2 );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.previous() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [ 'si', 'a ', 'is is ' ], nodes );
|
||||
},
|
||||
|
||||
test_previous_3 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>Test</p><h1>More</h1>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( node.getChild( 1 ), CKEDITOR.POSITION_BEFORE_START );
|
||||
range.setEndAt( node.getChild( 1 ), CKEDITOR.POSITION_AFTER_START );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.previous() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [ '' ], nodes );
|
||||
},
|
||||
|
||||
test_previous_4 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>Test</p><h1>More</h1>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( node.getChild( 0 ), CKEDITOR.POSITION_BEFORE_END );
|
||||
range.setEndAt( node.getChild( 0 ), CKEDITOR.POSITION_AFTER_END );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.previous() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [ '<p>' ], nodes );
|
||||
},
|
||||
|
||||
test_previous_5 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>Test</p><h1>More</h1>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( node.getChild( 0 ), CKEDITOR.POSITION_BEFORE_END );
|
||||
range.setEndAt( node.getChild( 1 ), CKEDITOR.POSITION_AFTER_START );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
|
||||
var nodes = [];
|
||||
while ( ( node = walker.previous() ) )
|
||||
nodes.push( node );
|
||||
|
||||
assertNodesList( [ '<p>' ], nodes );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test guard function is invoked on every move when iterating forward.
|
||||
*/
|
||||
test_guard_1 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>This is <b>a <i>simple</i></b> test</p>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( node );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
var nodes = [];
|
||||
|
||||
walker.guard = function( node )
|
||||
{
|
||||
nodes.push( node );
|
||||
return true;
|
||||
};
|
||||
|
||||
while ( ( node = walker.next() ) )
|
||||
{ /*jsl:pass*/ }
|
||||
|
||||
assertNodesList( [ '<p>', 'This is ', '<b>', 'a ', '<i>', 'simple', '<i>', '<b>',' test' , '<p>' ], nodes );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test guard function is invoked on every move when iterating backward.
|
||||
*/
|
||||
test_guard_2 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>This is <b>a <i>simple</i></b> test</p>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( node );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
var nodes = [];
|
||||
|
||||
walker.guard = function( node )
|
||||
{
|
||||
nodes.push( node );
|
||||
return true;
|
||||
};
|
||||
|
||||
while ( ( node = walker.previous() ) )
|
||||
{ /*jsl:pass*/ }
|
||||
|
||||
assertNodesList( [ '<p>', ' test', '<b>', '<i>', 'simple', '<i>', 'a ', '<b>', 'This is ', '<p>' ], nodes );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test evaluator function is invoked on every step when iterating backward.
|
||||
*/
|
||||
test_evaluator_1 : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<p>This is <b>a <i>simple</i></b> test</p>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( node );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
var nodes = [];
|
||||
|
||||
walker.evaluator = function( node )
|
||||
{
|
||||
nodes.push( node );
|
||||
return true;
|
||||
};
|
||||
|
||||
while ( ( node = walker.previous() ) )
|
||||
{ /*jsl:pass*/ }
|
||||
|
||||
assertNodesList( [ '<p>', ' test', '<b>', '<i>', 'simple', 'a ', 'This is ' ], nodes );
|
||||
},
|
||||
/**
|
||||
* Test walker stop at empty endContainer.
|
||||
*/
|
||||
test_stopGuard : function()
|
||||
{
|
||||
var node = doc.getById( 'playground' );
|
||||
node.setHtml( '<span></span>afterEnd' );
|
||||
var endContainer = node.getFirst();
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( node );
|
||||
range.setEndAt( endContainer, CKEDITOR.POSITION_AFTER_START );
|
||||
|
||||
var walker = new CKEDITOR.dom.walker( range );
|
||||
var nodes = [];
|
||||
|
||||
walker.evaluator = function( node )
|
||||
{
|
||||
nodes.push( node );
|
||||
return true;
|
||||
};
|
||||
|
||||
while ( ( node = walker.next() ) )
|
||||
{ /*jsl:pass*/ }
|
||||
|
||||
assertNodesList( [ '<span>' ], nodes );
|
||||
|
||||
},
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//window.onload = tc.test_stopGuard;
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="playground"></div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,53 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.dom.window</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
var loadCalled;
|
||||
|
||||
var testWindow = new CKEDITOR.dom.window( window );
|
||||
|
||||
var t;
|
||||
|
||||
testWindow.on( 'load', function()
|
||||
{
|
||||
t = document.createElement( 'textarea' );
|
||||
t.id = 'fred';
|
||||
|
||||
document.body.appendChild( t );
|
||||
|
||||
loadCalled = true;
|
||||
});
|
||||
|
||||
testWindow.on( 'beforeunload', function()
|
||||
{
|
||||
t.value = new Date();
|
||||
});
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_loadEvent : function()
|
||||
{
|
||||
assert.isTrue( loadCalled );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="test1"></div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,123 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.editor</title>
|
||||
<link rel="stylesheet" type="text/css" href="../test.css" />
|
||||
<script type="text/javascript" src="../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
// Disable 'scayt' plugin due to it may alter editor config after initialized.
|
||||
CKEDITOR.config.removePlugins = 'scayt';
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_name : function()
|
||||
{
|
||||
assert.areSame( 'editor1', CKEDITOR.instances.editor1.name );
|
||||
},
|
||||
|
||||
test_element : function()
|
||||
{
|
||||
assert.areSame( document.getElementById( 'editor1' ), CKEDITOR.instances.editor1.element.$ );
|
||||
},
|
||||
|
||||
test_config : function()
|
||||
{
|
||||
// The instance default config must match the CKEDITOR.config.
|
||||
|
||||
var config = CKEDITOR.instances.editor1.config;
|
||||
|
||||
for ( var prop in CKEDITOR.config )
|
||||
assert.areSame( CKEDITOR.config[ prop ], config[ prop ], '"' + prop + '" doesn\'t match' );
|
||||
},
|
||||
|
||||
test_config_inpage : function()
|
||||
{
|
||||
var self = this;
|
||||
|
||||
CKEDITOR.replace( 'editor2',
|
||||
{
|
||||
// The custom setting to be checked.
|
||||
test1 : 'ball',
|
||||
baseHref : 'test',
|
||||
|
||||
on :
|
||||
{
|
||||
instanceReady : function()
|
||||
{
|
||||
self.resume( function()
|
||||
{
|
||||
var config = CKEDITOR.instances.editor2.config;
|
||||
|
||||
assert.areSame( 'ball', config.test1, '"test1" doesn\'t match' );
|
||||
assert.areSame( 'test', config.baseHref, '"baseHref" doesn\'t match' );
|
||||
|
||||
// All other settings must match CKEDITOR.config.
|
||||
for ( var prop in CKEDITOR.config )
|
||||
{
|
||||
if ( prop != 'test1' && prop != 'baseHref' )
|
||||
assert.areSame( CKEDITOR.config[ prop ], config[ prop ], '"' + prop + '" doesn\'t match' );
|
||||
}
|
||||
} );
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
this.wait();
|
||||
},
|
||||
|
||||
test_config_customConfig : function()
|
||||
{
|
||||
var testCase = this;
|
||||
|
||||
CKEDITOR.on( 'instanceCreated', function( event )
|
||||
{
|
||||
if ( event.editor.name == 'editor3' )
|
||||
{
|
||||
event.editor.on( 'configLoaded', function()
|
||||
{
|
||||
testCase.resume( function()
|
||||
{
|
||||
var config = event.editor.config;
|
||||
|
||||
assert.areSame( 'Ok', config.test_custom1, '"test_custom1" doesn\'t match' );
|
||||
assert.areSame( 'Ok', config.test_custom2, '"test_custom1" doesn\'t match' );
|
||||
assert.areSame( 'ball', config.test1, '"test1" doesn\'t match' );
|
||||
assert.areSame( 'test', config.baseHref, '"baseHref" doesn\'t match' );
|
||||
|
||||
// All other settings must match CKEDITOR.config.
|
||||
for ( var prop in CKEDITOR.config )
|
||||
{
|
||||
if ( prop != 'customConfig' && prop != 'test_custom1' && prop != 'test_custom2' && prop != 'test1' && prop != 'baseHref' )
|
||||
assert.areSame( CKEDITOR.config[ prop ], config[ prop ], '"' + prop + '" doesn\'t match' );
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// Pass in-page settings to the instance.
|
||||
CKEDITOR.replace( 'editor3', { customConfig : '_editor/custom_config_1.js', test1 : 'ball', baseHref : 'test' } );
|
||||
|
||||
this.wait();
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<textarea id="editor1" class="ckeditor" cols="80" rows="10"></textarea>
|
||||
<textarea id="editor2" cols="80" rows="10"></textarea>
|
||||
<textarea id="editor3" cols="80" rows="10"></textarea>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,52 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.env</title>
|
||||
<link rel="stylesheet" type="text/css" href="../test.css" />
|
||||
<script type="text/javascript" src="../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_ie : function()
|
||||
{
|
||||
if ( window.ActiveXObject )
|
||||
{
|
||||
assert.isTrue( CKEDITOR.env.ie , 'ie should be true' );
|
||||
assert.isFalse( CKEDITOR.env.opera , 'opera should be false' );
|
||||
assert.isFalse( CKEDITOR.env.webkit , 'webkit should be false' );
|
||||
assert.isFalse( CKEDITOR.env.air , 'air should be false' );
|
||||
assert.isFalse( CKEDITOR.env.gecko , 'gecko should be false' );
|
||||
assert.isFalse( CKEDITOR.env.mac , 'ismac should be false' );
|
||||
}
|
||||
else
|
||||
assert.isFalse( CKEDITOR.env.ie );
|
||||
},
|
||||
|
||||
test_isCompatible : function()
|
||||
{
|
||||
assert.isTrue( CKEDITOR.env.isCompatible );
|
||||
},
|
||||
|
||||
|
||||
test_quirks : function()
|
||||
{
|
||||
assert.isFalse( CKEDITOR.env.quirks );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,487 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.event</title>
|
||||
<link rel="stylesheet" type="text/css" href="../test.css" />
|
||||
<script type="text/javascript" src="../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_inherit : function()
|
||||
{
|
||||
// Create a testClass that inherits from CKEDITOR.event.
|
||||
var testClass = function()
|
||||
{
|
||||
CKEDITOR.event.call( this );
|
||||
};
|
||||
testClass.prototype = CKEDITOR.event.prototype;
|
||||
|
||||
var calls = [];
|
||||
|
||||
var testInstance = new testClass();
|
||||
|
||||
testInstance.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( testInstance, this, 'Scope 1 is not valid' );
|
||||
|
||||
assert.areSame( 'someEvent', ev.name, 'ev.name (1) is wrong' );
|
||||
assert.areSame( testInstance, ev.sender, 'ev.sender (1) is wrong' );
|
||||
assert.isUndefined( ev.editor, 'ev.editor (1) is wrong' );
|
||||
assert.isUndefined( ev.data, 'ev.data (1) is wrong' );
|
||||
assert.isUndefined( ev.listenerData, 'ev.listenerData (1) is wrong' );
|
||||
|
||||
calls.push( 'a' );
|
||||
} );
|
||||
|
||||
testInstance.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( testInstance, this, 'Scope 2 is not valid' );
|
||||
|
||||
assert.areSame( 'someEvent', ev.name, 'ev.name (2) is wrong' );
|
||||
assert.areSame( testInstance, ev.sender, 'ev.sender (2) is wrong' );
|
||||
assert.isUndefined( ev.editor, 'ev.editor (2) is wrong' );
|
||||
assert.isUndefined( ev.data, 'ev.data (2) is wrong' );
|
||||
assert.isUndefined( ev.listenerData, 'ev.listenerData (2) is wrong' );
|
||||
|
||||
calls.push( 'b' );
|
||||
} );
|
||||
|
||||
assert.areSame( false, testInstance.fire( 'someEvent' ) );
|
||||
|
||||
assert.areSame( 2, calls.length, 'number of calls doesn\'t match' );
|
||||
assert.areSame( 'a,b', calls.toString() );
|
||||
},
|
||||
|
||||
test_implementOn : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = { someprop : 'Test' };
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
assert.areSame( 'Test', testObject.someprop );
|
||||
|
||||
var calls = [];
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( testObject, this, 'Scope 1 is not valid' );
|
||||
|
||||
assert.areSame( 'someEvent', ev.name, 'ev.name (1) is wrong' );
|
||||
assert.areSame( testObject, ev.sender, 'ev.sender (1) is wrong' );
|
||||
assert.isUndefined( ev.editor, 'ev.editor (1) is wrong' );
|
||||
assert.isUndefined( ev.data, 'ev.data (1) is wrong' );
|
||||
assert.isUndefined( ev.listenerData, 'ev.listenerData (1) is wrong' );
|
||||
|
||||
calls.push( 'a' );
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( testObject, this, 'Scope 2 is not valid' );
|
||||
|
||||
assert.areSame( 'someEvent', ev.name, 'ev.name (2) is wrong' );
|
||||
assert.areSame( testObject, ev.sender, 'ev.sender (2) is wrong' );
|
||||
assert.isUndefined( ev.editor, 'ev.editor (2) is wrong' );
|
||||
assert.isUndefined( ev.data, 'ev.data (2) is wrong' );
|
||||
assert.isUndefined( ev.listenerData, 'ev.listenerData (2) is wrong' );
|
||||
|
||||
calls.push( 'b' );
|
||||
} );
|
||||
|
||||
assert.areSame( false, testObject.fire( 'someEvent' ) );
|
||||
|
||||
assert.areSame( 2, calls.length, 'number of calls doesn\'t match' );
|
||||
assert.areSame( 'a,b', calls.toString() );
|
||||
},
|
||||
|
||||
test_eventNameCase : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
var counter = 0;
|
||||
|
||||
// Event Names are case sensitive.
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( 'someEvent', ev.name, 'ev.name (someEvent) is wrong' );
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.on( 'SomeEvent', function( ev )
|
||||
{
|
||||
assert.areSame( 'SomeEvent', ev.name, 'ev.name (SomeEvent) is wrong' );
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.fire( 'someEvent' );
|
||||
assert.areSame( 1, counter, '"someEvent" calls doesn\'t match' );
|
||||
|
||||
counter = 0;
|
||||
|
||||
testObject.fire( 'SomeEvent' );
|
||||
assert.areSame( 1, counter, '"SomeEvent" calls doesn\'t match' );
|
||||
},
|
||||
|
||||
test_scope : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
// Counter used just to check that the calls are effectively done.
|
||||
var counter = 0;
|
||||
|
||||
var testScope = {};
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( testObject, this, 'scope (testObject) is wrong' );
|
||||
assert.areSame( testObject, ev.sender, 'sender (testObject) is wrong' );
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( testScope, this, 'scope (testScope) is wrong' );
|
||||
assert.areSame( testObject, ev.sender, 'sender (testScope) is wrong' );
|
||||
counter++;
|
||||
}, testScope );
|
||||
|
||||
testObject.fire( 'someEvent' );
|
||||
|
||||
assert.areSame( 2, counter, 'wrong number of calls' );
|
||||
},
|
||||
|
||||
test_listenerData : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
// Counter used just to check that the calls are effectively done.
|
||||
var counter = 0;
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( 'Test1', ev.listenerData, 'listenerData (1) is wrong' );
|
||||
counter++;
|
||||
}, null, 'Test1' );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( 'Test2', ev.listenerData, 'listenerData (2) is wrong' );
|
||||
counter++;
|
||||
}, null, 'Test2' );
|
||||
|
||||
testObject.fire( 'someEvent' );
|
||||
|
||||
assert.areSame( 2, counter, 'wrong number of calls' );
|
||||
},
|
||||
|
||||
test_data : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
// Counter used just to check that the calls are effectively done.
|
||||
var counter = 0;
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( 'Test data', ev.data, 'data (1) is wrong' );
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( 'Test data', ev.data, 'data (2) is wrong' );
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.fire( 'someEvent', 'Test data' );
|
||||
|
||||
assert.areSame( 2, counter, 'wrong number of calls' );
|
||||
},
|
||||
|
||||
test_editor : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
// Counter used just to check that the calls are effectively done.
|
||||
var counter = 0;
|
||||
|
||||
var editor = {};
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( editor, ev.editor, 'editor is wrong' );
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.fire( 'someEvent', null, editor );
|
||||
|
||||
assert.areSame( 1, counter, 'wrong number of calls' );
|
||||
},
|
||||
|
||||
test_stop : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
var counter = 0;
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
ev.stop();
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
counter++;
|
||||
} );
|
||||
|
||||
assert.areSame( false, testObject.fire( 'someEvent' ), 'fire must return "false"' );
|
||||
assert.areSame( 1, counter, 'number of calls doesn\'t match' );
|
||||
},
|
||||
|
||||
test_cancel : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
var counter = 0;
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
ev.cancel();
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
counter++;
|
||||
} );
|
||||
|
||||
assert.areSame( true, testObject.fire( 'someEvent' ), 'fire must return "true"' );
|
||||
assert.areSame( 1, counter, 'number of calls doesn\'t match' );
|
||||
},
|
||||
|
||||
test_dataManipulation : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
var counter = 0;
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( 'Test1', ev.data );
|
||||
ev.data = 'Test2';
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( 'Test2', ev.data );
|
||||
ev.data = 'Test3';
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
assert.areSame( 'Test3', ev.data );
|
||||
ev.data = 'Test4';
|
||||
counter++;
|
||||
} );
|
||||
|
||||
assert.areSame( 'Test4', testObject.fire( 'someEvent', 'Test1' ), 'fire must return "Test4"' );
|
||||
assert.areSame( 3, counter, 'number of calls doesn\'t match' );
|
||||
},
|
||||
|
||||
test_priority : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
var calls = [];
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
calls.push( 'e' );
|
||||
}, null, null, 11 );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
calls.push( 'c' );
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
calls.push( 'a' );
|
||||
}, null, null, 9 );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
calls.push( 'f' );
|
||||
}, null, null, 11 );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
calls.push( 'd' );
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
calls.push( 'b' );
|
||||
}, null, null, 9 );
|
||||
|
||||
testObject.fire( 'someEvent', 'Test data' );
|
||||
assert.areSame( 'a,b,c,d,e,f', calls.toString() );
|
||||
},
|
||||
|
||||
test_removeListener : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
var calls = [];
|
||||
|
||||
var listener = function( ev )
|
||||
{
|
||||
calls.push( 'a' );
|
||||
};
|
||||
|
||||
testObject.on( 'someEvent', listener );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
calls.push( 'b' );
|
||||
} );
|
||||
|
||||
testObject.fire( 'someEvent', 'Test data' );
|
||||
assert.areSame( 'a,b', calls.toString() );
|
||||
|
||||
testObject.removeListener( 'someEvent', listener );
|
||||
|
||||
calls = [];
|
||||
|
||||
testObject.fire( 'someEvent', 'Test data' );
|
||||
assert.areSame( 'b', calls.toString() );
|
||||
},
|
||||
|
||||
test_fireOnce : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
var counter = 0;
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
counter++;
|
||||
} );
|
||||
|
||||
testObject.on( 'someEvent', function( ev )
|
||||
{
|
||||
counter++;
|
||||
} );
|
||||
|
||||
assert.areSame( false, testObject.fireOnce( 'someEvent' ), 'fireOnce must return "false"' );
|
||||
assert.areSame( 2, counter, 'number of calls doesn\'t match' );
|
||||
|
||||
counter = 0;
|
||||
|
||||
assert.areSame( false, testObject.fire( 'someEvent' ), 'fire must return "false"' );
|
||||
assert.areSame( 0, counter, 'number of calls doesn\'t match' );
|
||||
},
|
||||
|
||||
test_nestedCancel : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
var isCanceledA,
|
||||
isCanceledB,
|
||||
isCanceledC;
|
||||
|
||||
testObject.on( 'A', function( ev )
|
||||
{
|
||||
isCanceledB = testObject.fire( 'B' );
|
||||
isCanceledC = testObject.fire( 'C' );
|
||||
});
|
||||
|
||||
testObject.on( 'B', function( ev )
|
||||
{
|
||||
ev.cancel();
|
||||
});
|
||||
|
||||
testObject.on( 'C', function( ev )
|
||||
{
|
||||
});
|
||||
|
||||
isCanceledA = testObject.fire( 'A' );
|
||||
|
||||
assert.areSame( false, isCanceledA, 'event A must not be canceled' );
|
||||
assert.areSame( true, isCanceledB, 'event B must be canceled' );
|
||||
assert.areSame( false, isCanceledC, 'event C must not be canceled' );
|
||||
},
|
||||
|
||||
test_event_removeListener : function()
|
||||
{
|
||||
// Create a testObject and implement CKEDITOR.event on it.
|
||||
var testObject = {};
|
||||
CKEDITOR.event.implementOn( testObject );
|
||||
|
||||
var counter = 0;
|
||||
|
||||
// Add two listeners for the same event "A".
|
||||
|
||||
testObject.on( 'A', function( ev )
|
||||
{
|
||||
counter++;
|
||||
ev.removeListener();
|
||||
});
|
||||
|
||||
testObject.on( 'A', function( ev )
|
||||
{
|
||||
counter++;
|
||||
});
|
||||
|
||||
// Fire the event twice.
|
||||
testObject.fire( 'A' );
|
||||
testObject.fire( 'A' );
|
||||
|
||||
assert.areSame( 3, counter );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,188 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.htmlParser.fragment</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
var tc;
|
||||
|
||||
CKEDITOR.test.addTestCase( tc = (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
function testParser( input, expected )
|
||||
{
|
||||
var fragment = CKEDITOR.htmlParser.fragment.fromHtml( input, 'p' ),
|
||||
writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
|
||||
fragment.writeHtml( writer );
|
||||
|
||||
assert.areSame( expected, writer.getHtml( true ) );
|
||||
}
|
||||
|
||||
return {
|
||||
test_fromHtml_1 : function()
|
||||
{
|
||||
var fragment = CKEDITOR.htmlParser.fragment.fromHtml( '<p>Test</p>' );
|
||||
|
||||
assert.areSame( 1, fragment.children.length, 'Wrong size' );
|
||||
assert.areSame( CKEDITOR.NODE_ELEMENT, fragment.children[0].type, 'Wrong child type' );
|
||||
assert.areSame( 'p', fragment.children[0].name, 'Wrong child name' );
|
||||
},
|
||||
|
||||
test_parser_1 : function()
|
||||
{
|
||||
testParser( '<table><tr><td>1</td><p><b>2</b> Test</p><td>3</td></tr></table>',
|
||||
'<p><b>2</b> Test</p><table><tr><td>1</td><td>3</td></tr></table>' );
|
||||
},
|
||||
|
||||
test_parser_2 : function()
|
||||
{
|
||||
testParser( '<b><table><tr><td>1</td><td>2</td></tr></table></b>',
|
||||
'<table><tr><td><b>1</b></td><td><b>2</b></td></tr></table>' );
|
||||
},
|
||||
|
||||
test_parser_3_1 : function()
|
||||
{
|
||||
testParser( '<b><i>Table:<table><tr><td>1</td><td>2</td></tr></table></i></b>',
|
||||
'<p><b><i>Table:</i></b></p><table><tr><td><b><i>1</i></b></td><td><b><i>2</i></b></td></tr></table>' );
|
||||
},
|
||||
|
||||
test_parser_3_2 : function()
|
||||
{
|
||||
testParser( '<b><i><table><tr><td>1</td><td>2</td></tr></table>Table</i></b>',
|
||||
'<table><tr><td><b><i>1</i></b></td><td><b><i>2</i></b></td></tr></table><p><b><i>Table</i></b></p>' );
|
||||
},
|
||||
|
||||
test_parser_4 : function()
|
||||
{
|
||||
testParser( '<b><i>Test',
|
||||
'<p><b><i>Test</i></b></p>' );
|
||||
},
|
||||
|
||||
test_parser_5 : function()
|
||||
{
|
||||
testParser( '<p>Para 1<p>Para 2<p>Para 3',
|
||||
'<p>Para 1</p><p>Para 2</p><p>Para 3</p>' );
|
||||
},
|
||||
|
||||
test_parser_6 : function()
|
||||
{
|
||||
testParser( '<b>A</b><i>B</i>',
|
||||
'<p><b>A</b><i>B</i></p>' );
|
||||
},
|
||||
|
||||
test_parser_7 : function()
|
||||
{
|
||||
testParser( '<p>Para 1<hr>Para 2<h1>Para 3',
|
||||
'<p>Para 1</p><hr /><p>Para 2</p><h1>Para 3</h1>' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test remove empty inline element.
|
||||
*/
|
||||
test_parser_8 : function()
|
||||
{
|
||||
testParser( '<p><b></b>text</p>',
|
||||
'<p>text</p>' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test remove multiple empty inline elements.
|
||||
*/
|
||||
test_parser_8_2 : function()
|
||||
{
|
||||
testParser( '<p><b><i></b></i>text</p>',
|
||||
'<p>text</p>' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test fixing malformed inline element closing.
|
||||
*/
|
||||
test_parser_9 : function()
|
||||
{
|
||||
testParser( '<p><b>bold<i>ita</b>lic</i></p>',
|
||||
'<p><b>bold<i>ita</i></b><i>lic</i></p>' );
|
||||
},
|
||||
|
||||
test_ticket_10 : function()
|
||||
{
|
||||
testParser( '<table><tbody><tr><td>A<b></b></td></tr></tbody></table>',
|
||||
'<table><tbody><tr><td>A</td></tr></tbody></table>' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test fixing paragraph inside table row.
|
||||
*/
|
||||
test_ticket_3195 : function()
|
||||
{
|
||||
testParser( '<table><tr><td>1</td><p>2</p><td>3</td></tr></table>',
|
||||
'<p>2</p><table><tr><td>1</td><td>3</td></tr></table>' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test fixing paragraph inside list.
|
||||
*/
|
||||
test_ticket_3195_2 : function()
|
||||
{
|
||||
testParser( '<ul><li>1</li><p>2</p><li>3</li></ul>',
|
||||
'<p>2</p><ul><li>1</li><li>3</li></ul>' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test fixing 'div' inside paragraph.
|
||||
*/
|
||||
test_ticket_3195_3 : function()
|
||||
{
|
||||
testParser( '<p>1<div>2</div><span>3</span></p>',
|
||||
'<p>1</p><div>2</div><p><span>3</span></p>' );
|
||||
},
|
||||
|
||||
test_ticket_3441 : function()
|
||||
{
|
||||
testParser( '<p><b>Test</b></p><script type="test">var a = "<A Href=xxx>Testing</ A>";\nGo();<\/script>',
|
||||
'<p><b>Test</b></p><script type="test">var a = "<A Href=xxx>Testing</ A>";\nGo();<\/script>' );
|
||||
},
|
||||
|
||||
test_ticket_3585 : function()
|
||||
{
|
||||
testParser( '<p><br />\t\r\n</p>',
|
||||
'<p><br /></p>' );
|
||||
},
|
||||
|
||||
test_ticket_3585_1 : function()
|
||||
{
|
||||
testParser( '<p><br />text\t\r\n</p>',
|
||||
'<p><br />text</p>' );
|
||||
},
|
||||
|
||||
test_ticket_3585_2 : function()
|
||||
{
|
||||
testParser( '<b>inline </b>\n<p>paragraph\t\r\n</p>\t\r\n',
|
||||
'<p><b>inline </b></p><p>paragraph</p>' );
|
||||
},
|
||||
|
||||
test_ticket_3744 : function()
|
||||
{
|
||||
testParser( '<div><b><font><span>A</font></span></b></div><div>X</div>',
|
||||
'<div><b><font><span>A</span></font></b></div><div>X</div>' );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
// Uncomment the following to run a single test.
|
||||
// window.onload = tc.test_ticket_3585_2;
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,91 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.htmlParser</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.plugins.load( 'htmlwriter' );
|
||||
var tc;
|
||||
CKEDITOR.test.addTestCase( tc = ( function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = YAHOO.util.Assert;
|
||||
|
||||
/**
|
||||
* Wrapper of the combination of htmlParser with htmlWriter, for convenience of
|
||||
* testing, formatting of writer has been disabled.
|
||||
*/
|
||||
function htmlParse( htmlString , writerConfig)
|
||||
{
|
||||
var writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
writer.reset();
|
||||
var fragment = CKEDITOR.htmlParser.fragment.fromHtml( htmlString );
|
||||
fragment.writeHtml( writer );
|
||||
return writer.getHtml();
|
||||
}
|
||||
|
||||
/**
|
||||
* IE always returning CRLF for line-feed, so remove it when retrieving
|
||||
* pre-formated text from text area.
|
||||
*/
|
||||
function getTextAreaValue( id )
|
||||
{
|
||||
return CKEDITOR.document.getById( id ).getValue().replace( /\r/gi, '' );
|
||||
}
|
||||
|
||||
return {
|
||||
/**
|
||||
* Test <pre> tag formatting.
|
||||
*/
|
||||
test_fromHtml_3715 : function()
|
||||
{
|
||||
assert.areSame( getTextAreaValue( 'htmlResult1' ),
|
||||
htmlParse( getTextAreaValue( 'htmlOriginal1' ) ),
|
||||
'<pre> parsing result doesn\'t match.' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test compress empty spaces within text.
|
||||
*/
|
||||
test_fromHtml_3715_2 : function()
|
||||
{
|
||||
assert.areSame( getTextAreaValue( 'htmlResult2' ),
|
||||
htmlParse( getTextAreaValue( 'htmlOriginal2' ) ),
|
||||
'Spaces compressing result doesn\'t match.' );
|
||||
},
|
||||
name :document.title
|
||||
};
|
||||
} )() );
|
||||
|
||||
//window.onload = tc.test_fromHtml_3715;
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<textarea id="htmlOriginal1"><pre>
|
||||
text<b>
|
||||
inside<br /><br /></b>
|
||||
|
||||
pre
|
||||
</pre></textarea>
|
||||
<textarea id="htmlResult1"><pre>
|
||||
text<b>
|
||||
inside
|
||||
|
||||
</b>
|
||||
|
||||
pre
|
||||
</pre></textarea>
|
||||
|
||||
<textarea id="htmlOriginal2"><p>
|
||||
para graph
|
||||
</p><b>compress spaces</b></textarea>
|
||||
|
||||
<textarea id="htmlResult2"><p>para graph</p><b>compress spaces</b></textarea>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,45 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.plugins</title>
|
||||
<link rel="stylesheet" type="text/css" href="../test.css" />
|
||||
<script type="text/javascript" src="../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
|
||||
/**
|
||||
* Test loading self defined external plugin file paths.
|
||||
*/
|
||||
test_addExternal : function()
|
||||
{
|
||||
var path = '_tests/';
|
||||
CKEDITOR.plugins.addExternal( 'myplugin',
|
||||
path + 'core/plugins/myplugins/sample/', 'my_plugin.js' );
|
||||
|
||||
CKEDITOR.plugins.load( 'myplugin', function(){
|
||||
this.resume( function(){
|
||||
|
||||
assert.isTrue( CKEDITOR.plugins.get( 'myplugin' ).definition );
|
||||
} );
|
||||
}, this );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
CKEDITOR.plugins.add( 'myplugin' , {
|
||||
definition : true
|
||||
} );
|
||||
@@ -1,52 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.scriptLoader</title>
|
||||
<link rel="stylesheet" type="text/css" href="../test.css" />
|
||||
<script type="text/javascript" src="../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_loadCode : function()
|
||||
{
|
||||
CKEDITOR.scriptLoader.loadCode( 'var test="Testing!";' );
|
||||
|
||||
/*jsl:ignore*/
|
||||
assert.areEqual( 'Testing!', test );
|
||||
/*jsl:end*/
|
||||
},
|
||||
|
||||
test_load : function()
|
||||
{
|
||||
var testCase = this;
|
||||
var callback = function( data )
|
||||
{
|
||||
testCase.resume( function()
|
||||
{
|
||||
/*jsl:ignore*/
|
||||
assert.areSame( 'Test!', testVar );
|
||||
/*jsl:end*/
|
||||
} );
|
||||
};
|
||||
|
||||
CKEDITOR.scriptLoader.load( '../_assets/sample.js', callback );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,170 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.tools</title>
|
||||
<link rel="stylesheet" type="text/css" href="../test.css" />
|
||||
<script type="text/javascript" src="../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
var testcase;
|
||||
CKEDITOR.test.addTestCase( testcase = (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_extend : function()
|
||||
{
|
||||
var fakeFn = function() {};
|
||||
var fakeObj = { fake1 : 1, fake2 : 2 };
|
||||
var fakeArray = [ 'Test', 10, fakeFn, fakeObj ];
|
||||
|
||||
var target =
|
||||
{
|
||||
prop1 : 'Test',
|
||||
prop2 : 10,
|
||||
prop3 : fakeFn,
|
||||
prop4 : fakeObj,
|
||||
prop5 : fakeArray
|
||||
};
|
||||
|
||||
CKEDITOR.tools.extend( target,
|
||||
{
|
||||
prop3 : 'Wrong',
|
||||
prop6 : 'Good',
|
||||
prop7 : fakeArray
|
||||
} );
|
||||
|
||||
assert.areSame( 'Test' , target.prop1, 'prop1 doesn\'t match' );
|
||||
assert.areSame( 10 , target.prop2, 'prop2 doesn\'t match' );
|
||||
assert.areSame( fakeFn , target.prop3, 'prop3 doesn\'t match' );
|
||||
assert.areSame( fakeObj , target.prop4, 'prop4 doesn\'t match' );
|
||||
assert.areSame( fakeArray , target.prop5, 'prop5 doesn\'t match' );
|
||||
assert.areSame( 'Good' , target.prop6, 'prop6 doesn\'t match' );
|
||||
assert.areSame( fakeArray , target.prop7, 'prop7 doesn\'t match' );
|
||||
},
|
||||
|
||||
test_isArray1 : function()
|
||||
{
|
||||
assert.isTrue( CKEDITOR.tools.isArray( [] ) );
|
||||
},
|
||||
|
||||
test_isArray2 : function()
|
||||
{
|
||||
assert.isFalse( CKEDITOR.tools.isArray( { length:1 } ) );
|
||||
},
|
||||
|
||||
test_isArray3 : function()
|
||||
{
|
||||
assert.isFalse( CKEDITOR.tools.isArray( null ) );
|
||||
},
|
||||
|
||||
test_isArray4 : function()
|
||||
{
|
||||
assert.isFalse( CKEDITOR.tools.isArray( window.x ) );
|
||||
},
|
||||
|
||||
test_htmlEncode1 : function()
|
||||
{
|
||||
assert.areSame( '<b>Test</b>', CKEDITOR.tools.htmlEncode( '<b>Test</b>' ) );
|
||||
},
|
||||
|
||||
test_htmlEncode2 : function()
|
||||
{
|
||||
assert.areSame( 'Test\'s & "quote"', CKEDITOR.tools.htmlEncode( 'Test\'s & "quote"' ) );
|
||||
},
|
||||
|
||||
test_htmlEncode_3874 : function()
|
||||
{
|
||||
assert.areSame( 'line1\nline2', CKEDITOR.tools.htmlEncode( 'line1\nline2' ) );
|
||||
},
|
||||
|
||||
test_cssStyleToDomStyle1 : function()
|
||||
{
|
||||
assert.areSame( 'backgroundColor', CKEDITOR.tools.cssStyleToDomStyle( 'background-color' ) );
|
||||
},
|
||||
|
||||
test_cssStyleToDomStyle2 : function()
|
||||
{
|
||||
assert.areSame( 'cssFloat', CKEDITOR.tools.cssStyleToDomStyle( 'float' ) );
|
||||
},
|
||||
|
||||
test_getNextNumber : function()
|
||||
{
|
||||
var number = CKEDITOR.tools.getNextNumber();
|
||||
assert.areSame( number + 1, CKEDITOR.tools.getNextNumber() );
|
||||
assert.areSame( number + 2, CKEDITOR.tools.getNextNumber() );
|
||||
assert.areSame( number + 3, CKEDITOR.tools.getNextNumber() );
|
||||
},
|
||||
|
||||
test_trim1 : function()
|
||||
{
|
||||
assert.areSame( 'test', CKEDITOR.tools.trim( ' test ' ) );
|
||||
},
|
||||
|
||||
test_trim2 : function()
|
||||
{
|
||||
assert.areSame( 'test', CKEDITOR.tools.trim( ' \n \t test\n \t ' ) );
|
||||
},
|
||||
|
||||
test_ltrim1 : function()
|
||||
{
|
||||
assert.areSame( 'test ', CKEDITOR.tools.ltrim( ' test ' ) );
|
||||
},
|
||||
|
||||
test_ltrim2 : function()
|
||||
{
|
||||
assert.areSame( 'test\n \t ', CKEDITOR.tools.ltrim( ' \n \t test\n \t ' ) );
|
||||
},
|
||||
|
||||
test_rtrim1 : function()
|
||||
{
|
||||
assert.areSame( ' test', CKEDITOR.tools.rtrim( ' test ' ) );
|
||||
},
|
||||
|
||||
test_rtrim2 : function()
|
||||
{
|
||||
assert.areSame( ' \n \t test', CKEDITOR.tools.rtrim( ' \n \t test\n \t ' ) );
|
||||
},
|
||||
|
||||
test_clone : function()
|
||||
{
|
||||
var obj =
|
||||
{
|
||||
name : 'John',
|
||||
cars :
|
||||
{
|
||||
Mercedes : { color : 'blue' },
|
||||
Porsche : { color : 'red' }
|
||||
}
|
||||
};
|
||||
|
||||
var clone = CKEDITOR.tools.clone( obj );
|
||||
|
||||
clone.name = 'Paul';
|
||||
clone.cars.Porsche.color = 'silver';
|
||||
|
||||
assert.areSame( 'John', obj.name );
|
||||
assert.areSame( 'Paul', clone.name );
|
||||
|
||||
assert.areSame( 'red', obj.cars.Porsche.color );
|
||||
assert.areSame( 'silver', clone.cars.Porsche.color );
|
||||
},
|
||||
|
||||
test_repeat : function()
|
||||
{
|
||||
assert.areSame( ' ', CKEDITOR.tools.repeat( ' ', 3 ) );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
//window.onload = testcase.test_htmlEncode_3874;
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<iframe></iframe>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,150 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEDITOR.xml</title>
|
||||
<link rel="stylesheet" type="text/css" href="../test.css" />
|
||||
<script type="text/javascript" src="../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../_source/core/loader.js"></script>
|
||||
<script type="text/javascript" src="../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.loader.load( 'core/xml' );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
// Local reference to the "assert" object.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
|
||||
return {
|
||||
test_baseXml : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data />' );
|
||||
assert.isObject( xml.baseXml );
|
||||
},
|
||||
|
||||
test_selectSingleNode1a : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item /></data>' );
|
||||
var node = xml.selectSingleNode( 'data/item' );
|
||||
assert.areEqual( 'item', node.nodeName );
|
||||
},
|
||||
|
||||
test_selectSingleNode1b : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item /></data>' );
|
||||
var node = xml.selectSingleNode( 'item' );
|
||||
assert.isNull( node );
|
||||
},
|
||||
|
||||
test_selectSingleNode2a : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item><subitem/></item></data>' );
|
||||
var contextNode = xml.selectSingleNode( 'data' );
|
||||
var node = xml.selectSingleNode( 'item/subitem', contextNode );
|
||||
assert.areEqual( 'subitem', node.nodeName );
|
||||
},
|
||||
|
||||
test_selectSingleNode2b : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item><subitem/></item></data>' );
|
||||
var contextNode = xml.selectSingleNode( 'data' );
|
||||
var node = xml.selectSingleNode( 'subitem', contextNode );
|
||||
assert.isNull( node );
|
||||
},
|
||||
|
||||
test_selectSingleNode3 : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item id="x1"/><item id="x2"/></data>' );
|
||||
var node = xml.selectSingleNode( '//item[@id="x2"]' );
|
||||
assert.areEqual( 'item', node.nodeName );
|
||||
assert.areEqual( 'x2', node.getAttribute( 'id' ) );
|
||||
},
|
||||
|
||||
test_selectSingleNode4 : function()
|
||||
{
|
||||
// For may results, the first one must be returned.
|
||||
|
||||
var xml = new CKEDITOR.xml( '<data><item id="x1"/><item id="x2"/></data>' );
|
||||
var node = xml.selectSingleNode( '//item' );
|
||||
assert.areEqual( 'item', node.nodeName );
|
||||
assert.areEqual( 'x1', node.getAttribute( 'id' ) );
|
||||
},
|
||||
|
||||
test_selectNodes1 : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item /></data>' );
|
||||
var nodes = xml.selectNodes( 'data/item' );
|
||||
assert.areEqual( 1, nodes.length );
|
||||
assert.areEqual( 'item', nodes[0].nodeName );
|
||||
},
|
||||
|
||||
test_selectNodes2a : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item id="x1"/><item id="x2"/><item id="x3"/></data>' );
|
||||
var nodes = xml.selectNodes( '//item' );
|
||||
assert.areEqual( 3, nodes.length );
|
||||
assert.areEqual( 'x1', nodes[0].getAttribute( 'id' ) );
|
||||
assert.areEqual( 'x2', nodes[1].getAttribute( 'id' ) );
|
||||
assert.areEqual( 'x3', nodes[2].getAttribute( 'id' ) );
|
||||
},
|
||||
|
||||
test_selectNodes2b : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item id="x1"/><item id="x2"/><item id="x3"/></data>' );
|
||||
var nodes = xml.selectNodes( '//itemX' );
|
||||
assert.areEqual( 0, nodes.length );
|
||||
},
|
||||
|
||||
test_selectNodes3a : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item id="x1"/><item id="x2"/><item id="x3"/></data>' );
|
||||
var contextNode = xml.selectSingleNode( 'data' );
|
||||
var nodes = xml.selectNodes( 'item', contextNode );
|
||||
assert.areEqual( 3, nodes.length );
|
||||
assert.areEqual( 'x1', nodes[0].getAttribute( 'id' ) );
|
||||
assert.areEqual( 'x2', nodes[1].getAttribute( 'id' ) );
|
||||
assert.areEqual( 'x3', nodes[2].getAttribute( 'id' ) );
|
||||
},
|
||||
|
||||
test_selectNodes3b : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item id="x1"/><item id="x2"/><item id="x3"/></data>' );
|
||||
var contextNode = xml.selectSingleNode( 'data' );
|
||||
var nodes = xml.selectNodes( 'itemX', contextNode );
|
||||
assert.areEqual( 0, nodes.length );
|
||||
},
|
||||
|
||||
test_getInnerXml1 : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item/></data>' );
|
||||
assert.areEqual( '<item/>', xml.getInnerXml( 'data' ) );
|
||||
},
|
||||
|
||||
test_getInnerXml2 : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item id="x1"><subitem name="sub1"/></item></data>' );
|
||||
assert.areEqual( '<subitem name="sub1"/>', xml.getInnerXml( '//item' ) );
|
||||
},
|
||||
|
||||
test_getInnerXml3 : function()
|
||||
{
|
||||
var xml = new CKEDITOR.xml( '<data><item id="x1"/></data>' );
|
||||
assert.isNull( xml.getInnerXml( '//itemX' ) );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,236 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Plugin: domiterator</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
CKEDITOR.plugins.load( [ 'htmldataprocessor', 'htmlwriter', 'domiterator'] );
|
||||
|
||||
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
/**
|
||||
* IE always returning CRLF for linefeed, so remove it when retrieve pre-formated text from text area.
|
||||
* @param {Object} id
|
||||
*/
|
||||
function getTextAreaValue( id )
|
||||
{
|
||||
return CKEDITOR.document.getById( id ).getValue().replace(/\r/gi,'');
|
||||
}
|
||||
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
|
||||
// Local references.
|
||||
var assert = CKEDITOR.test.assert,
|
||||
arrayAssert = YAHOO.util.ArrayAssert;
|
||||
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
|
||||
// In these tests, we may "reset" the writer rules to avoid it formatting
|
||||
// the output, making the assertion easier to the done. We don't need to
|
||||
// test formatting features here, so this is ok.
|
||||
var getDataProcessor = function()
|
||||
{
|
||||
var dataProcessor = new CKEDITOR.htmlDataProcessor();
|
||||
dataProcessor.writer._.rules = [];
|
||||
return dataProcessor;
|
||||
};
|
||||
|
||||
/**
|
||||
* IE always returning CRLF for line-feed, so remove it when retrieving
|
||||
* pre-formated text from text area.
|
||||
*/
|
||||
function getTextAreaValue( id )
|
||||
{
|
||||
return CKEDITOR.document.getById( id ).getValue().replace( /\r/gi, '' );
|
||||
}
|
||||
|
||||
function assumeElementContentAreSame( container, textareaId )
|
||||
{
|
||||
if( typeof container == 'string' )
|
||||
container = doc.getById( container );
|
||||
//Assume result document content
|
||||
var html = getDataProcessor().toDataFormat( container.getHtml() );
|
||||
assert.areSame( getTextAreaValue( textareaId ) , html );
|
||||
}
|
||||
|
||||
function assumeElementAreSame( element, textareaId )
|
||||
{
|
||||
if( typeof element == 'string' )
|
||||
element = doc.getById( element );
|
||||
//Assume result document content
|
||||
var html = getDataProcessor().toDataFormat( element.getOuterHtml() );
|
||||
assert.areSame( getTextAreaValue( textareaId ) , html );
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {String|CKEDITOR.dom.range} containerId|range Either the id of html container which contents are treated as range, or a exisiting range object.
|
||||
* @param {Object} iteratorOption
|
||||
* @param {Array} expectedTagList block elements tagName list in iteration orders.
|
||||
*/
|
||||
function assumeIterationSameAs( containerIdOrRange, iteratorOption, expectedTagList )
|
||||
{
|
||||
var range;
|
||||
if( typeof containerIdOrRange == 'string' )
|
||||
{
|
||||
range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( doc.getById( containerIdOrRange ) );
|
||||
}
|
||||
else
|
||||
range = containerIdOrRange;
|
||||
|
||||
var iter = range.createIterator();
|
||||
CKEDITOR.tools.extend( iter, iteratorOption, true );
|
||||
var blockList = [], block;
|
||||
while (( block = iter.getNextParagraph() ) )
|
||||
{
|
||||
blockList.push( block.getName() );
|
||||
}
|
||||
arrayAssert.itemsAreEqual( expectedTagList, blockList );
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
/**
|
||||
* Test iterating over table cells.
|
||||
*/
|
||||
test_iterator_table_cells : function()
|
||||
{
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( doc.getById( 'iterTarget2a' ), CKEDITOR.POSITION_AFTER_START );
|
||||
range.setEndAt( doc.getById( 'iterTarget2b' ), CKEDITOR.POSITION_BEFORE_END );
|
||||
assumeIterationSameAs( range, null, [ 'th', 'p', 'td' ]);
|
||||
assumeElementContentAreSame( 'iterContainer2', 'iterResult2' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test iterating over list items.
|
||||
*/
|
||||
test_iterator_listItems : function()
|
||||
{
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( doc.getById( 'iterTarget3a' ), CKEDITOR.POSITION_AFTER_START );
|
||||
range.setEndAt( doc.getById( 'iterTarget3b' ), CKEDITOR.POSITION_BEFORE_END );
|
||||
assumeIterationSameAs( range, null, [ 'li', 'p', 'li' ,'p', 'li' ]);
|
||||
assumeElementContentAreSame( 'iterContainer3', 'iterResult3' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test iterating over pseudo block.
|
||||
*/
|
||||
test_iterator_pseudoBlock : function()
|
||||
{
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( doc.getById( 'iterTarget4a' ), CKEDITOR.POSITION_AFTER_START );
|
||||
range.setEndAt( doc.getById( 'iterTarget4b' ), CKEDITOR.POSITION_BEFORE_END );
|
||||
assumeIterationSameAs( range, null, [ 'p', 'p' ] );
|
||||
assumeElementContentAreSame( 'iterContainer4', 'iterResult4' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test collapsed range before paraghraph end.
|
||||
*/
|
||||
test_iterator_collapsed_before_paragraph : function()
|
||||
{
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( doc.getById( 'iterTarget7' ), CKEDITOR.POSITION_BEFORE_END );
|
||||
assumeIterationSameAs( range, null, [ 'p' ]);
|
||||
assumeElementContentAreSame( 'iterContainer7', 'iterResult7' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test range collapsed inside paraghraph.
|
||||
*/
|
||||
test_iterator_collapsed_inside_paragraph : function()
|
||||
{
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( 'para8' ).getFirst(), 3 );
|
||||
assumeIterationSameAs( range, null, [ 'p' ]);
|
||||
assumeElementContentAreSame( 'iterContainer8', 'iterResult8' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test fix paragraph-less content.
|
||||
*/
|
||||
test_iterator_establish_paragraph: function()
|
||||
{
|
||||
var range = new CKEDITOR.dom.range(doc);
|
||||
range.setStartAt(doc.getById('iterTarget9'), CKEDITOR.POSITION_AFTER_START);
|
||||
range.setEndAt(doc.getById('iterTarget9'), CKEDITOR.POSITION_BEFORE_END);
|
||||
assumeIterationSameAs(range, null, ['p']);
|
||||
assumeElementContentAreSame( 'iterContainer9', 'iterResult9');
|
||||
},
|
||||
|
||||
/**
|
||||
* Test iterating over more than one paragraphs. (#3352)
|
||||
*/
|
||||
test_iterator_multiple_paragraphs: function()
|
||||
{
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt(doc.getById( 'iterTarget10a' ), CKEDITOR.POSITION_AFTER_START );
|
||||
range.setEndAt(doc.getById( 'iterTarget10b' ), CKEDITOR.POSITION_BEFORE_END );
|
||||
assumeIterationSameAs( range, null, [ 'p', 'p' ] );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<div id="iterContainer2"><table summary="summary">
|
||||
<caption>caption</caption>
|
||||
<tr>
|
||||
<th id="iterTarget2a">
|
||||
head1</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><p>cell1</p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="iterTarget2b">cell2</td>
|
||||
</tr>
|
||||
</table></div>
|
||||
<textarea id="iterResult2"><table summary="summary"><caption>caption</caption><tbody><tr><th id="iterTarget2a">head1</th></tr><tr><td><p>cell1</p></td></tr><tr><td id="iterTarget2b">cell2</td></tr></tbody></table></textarea>
|
||||
|
||||
<div id="iterContainer3"><ul>
|
||||
<li id="iterTarget3a">item1</li>
|
||||
<li><p>item2</p></li>
|
||||
<li>
|
||||
<ul><li>item3</li></ul>
|
||||
<ul><li><p>item5</p></li></ul>
|
||||
</li>
|
||||
<li id="iterTarget3b">item5</li>
|
||||
</ul></div>
|
||||
<textarea id="iterResult3"><ul><li id="iterTarget3a">item1</li><li><p>item2</p></li><li><ul><li>item3</li></ul><ul><li><p>item5</p></li></ul></li><li id="iterTarget3b">item5</li></ul></textarea>
|
||||
|
||||
<div id="iterContainer4">
|
||||
<div id="iterTarget4b"><p id="iterTarget4a">paragraph</p>text</div>
|
||||
</div>
|
||||
<textarea id="iterResult4"><div id="iterTarget4b"><p id="iterTarget4a">paragraph</p><p>text</p></div></textarea>
|
||||
|
||||
<div id="iterContainer7"><p id="iterTarget7">paragraph</p></div>
|
||||
<textarea id="iterResult7"><p id="iterTarget7">paragraph</p></textarea>
|
||||
|
||||
<div id="iterContainer8"><p id="para8">paragraph</p></div>
|
||||
<textarea id="iterResult8"><p id="para8">paragraph</p></textarea>
|
||||
|
||||
<form id="iterContainer9"><span id="iterTarget9">non-paragraph</span></form>
|
||||
<textarea id="iterResult9"><p><span id="iterTarget9">non-paragraph</span></p></textarea>
|
||||
|
||||
<div id="iterContainer10"><p id="iterTarget10a">para1</p><p id="iterTarget10b">para2</p></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
-386
@@ -1,386 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Plugin: htmldataprocessor</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
// Load the required plugins and launch the runner.
|
||||
CKEDITOR.test.deferRunner = true;
|
||||
CKEDITOR.plugins.load( 'htmldataprocessor' , function()
|
||||
{
|
||||
CKEDITOR.test.runner.run();
|
||||
} );
|
||||
|
||||
var testCase;
|
||||
|
||||
CKEDITOR.test.addTestCase( testCase = (function()
|
||||
{
|
||||
// Local references.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
|
||||
// In these tests, we may "reset" the writer rules to avoid it formatting
|
||||
// the output, making the assertion easier to the done. We don't need to
|
||||
// test formatting features here, so this is ok.
|
||||
var getDataProcessor = function()
|
||||
{
|
||||
var dataProcessor = new CKEDITOR.htmlDataProcessor();
|
||||
dataProcessor.writer._.rules = [];
|
||||
return dataProcessor;
|
||||
};
|
||||
|
||||
/**
|
||||
* IE always returning CRLF for linefeed, so remove it when retrieve pre-formated text from text area.
|
||||
* @param {Object} id
|
||||
*/
|
||||
function getTextAreaValue( id )
|
||||
{
|
||||
return CKEDITOR.document.getById( id ).getValue().replace(/\r/gi,'');
|
||||
}
|
||||
|
||||
// These tests go far beyond the strict htmlDataProcessor code testing. We
|
||||
// are actually testing the entire parsing system here. The combination of
|
||||
// htmlParser and htmlWriter inside htmlDataProcessor is useful in this
|
||||
// sense.
|
||||
|
||||
return {
|
||||
test_toDataFormat_1a : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element.createFromHtml( '<div><p>Test</p></div>' );
|
||||
|
||||
assert.areSame( '<p>Test</p>', getDataProcessor().toDataFormat( element.getHtml() ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_1b : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element.createFromHtml( '<div><x:x>Test</x:x></div>' );
|
||||
|
||||
// IE adds the XML namespace tag.
|
||||
if ( CKEDITOR.env.ie )
|
||||
assert.areSame( '<?xml:namespace prefix="x" /><x:x>Test</x:x>', getDataProcessor().toDataFormat( element.getHtml() ) );
|
||||
else
|
||||
assert.areSame( '<x:x>Test</x:x>', getDataProcessor().toDataFormat( element.getHtml() ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_2a : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element.createFromHtml( '<div><br /><p>Test</p></div>' );
|
||||
|
||||
assert.areSame( '<br /><p>Test</p>', getDataProcessor().toDataFormat( element.getHtml() ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_2b : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element.createFromHtml( '<div><x:x></x:x><p>Test</p></div>' );
|
||||
|
||||
// IE adds the XML namespace tag.
|
||||
if ( CKEDITOR.env.ie )
|
||||
assert.areSame( '<?xml:namespace prefix="x" /><x:x></x:x><p>Test</p>', getDataProcessor().toDataFormat( element.getHtml() ) );
|
||||
else
|
||||
assert.areSame( '<x:x></x:x><p>Test</p>', getDataProcessor().toDataFormat( element.getHtml() ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_3 : function()
|
||||
{
|
||||
assert.areSame( '<div><x:x><p>Test</p></x:x></div>', getDataProcessor().toDataFormat( '<div><x:x><p>Test</p></div>' ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_ticket_2774 : function()
|
||||
{
|
||||
var element = new CKEDITOR.dom.element.createFromHtml( '<div><P class=MsoNormal><B><I><SPAN lang=EN-US><o:p>Test</o:p></SPAN></I></B></P></div>' );
|
||||
|
||||
// IE adds the XML namespace tag.
|
||||
if ( CKEDITOR.env.ie )
|
||||
assert.areSame( '<p class="MsoNormal"><b><i><span lang="EN-US"><?xml:namespace prefix="o" /><o:p>Test</o:p></span></i></b></p>', getDataProcessor().toDataFormat( element.getHtml() ) );
|
||||
else
|
||||
assert.areSame( '<p class="MsoNormal"><b><i><span lang="EN-US"><o:p>Test</o:p></span></i></b></p>', getDataProcessor().toDataFormat( element.getHtml() ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_ticket_3036_1 : function()
|
||||
{
|
||||
assert.areSame( '<input autocomplete="off" checked="checked" type="checkbox" />',
|
||||
getDataProcessor().toDataFormat( '<INPUT type="checkbox" CHECKED autocomplete=off>' ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_ticket_3036_2 : function()
|
||||
{
|
||||
assert.areSame( '<input autocomplete="off" type="checkbox" unknown="" />',
|
||||
getDataProcessor().toDataFormat( '<INPUT type="checkbox" UNKNOWN autocomplete=off>' ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_ticket_2886_1 : function()
|
||||
{
|
||||
var editor = CKEDITOR.instances.editor1;
|
||||
var test = this;
|
||||
var isReady = !!editor.dataProcessor;
|
||||
|
||||
if ( !isReady )
|
||||
{
|
||||
editor.on( 'instanceReady', function()
|
||||
{
|
||||
isReady = true;
|
||||
} );
|
||||
}
|
||||
|
||||
this.wait( function()
|
||||
{
|
||||
if ( !isReady )
|
||||
{
|
||||
test.wait( arguments.callee, 100 );
|
||||
return;
|
||||
}
|
||||
|
||||
assert.areSame( '<p>\n\t </p>\n',
|
||||
editor.dataProcessor.toDataFormat( '<p></p>' ) );
|
||||
}, 100 );
|
||||
},
|
||||
|
||||
test_toDataFormat_ticket_2886_2 : function()
|
||||
{
|
||||
var dataProcessor = CKEDITOR.instances.editor1.dataProcessor;
|
||||
|
||||
var source = '<p>Some text<br><br><br></p>';
|
||||
if ( CKEDITOR.env.ie )
|
||||
source = '<p>Some text<br><br></p>';
|
||||
assert.areSame( '<p>\n\tSome text<br />\n\t<br />\n\t </p>\n',
|
||||
dataProcessor.toDataFormat( source ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_ticket_2886_3 : function()
|
||||
{
|
||||
var dataProcessor = CKEDITOR.instances.editor1.dataProcessor;
|
||||
|
||||
assert.areSame( '<p>\n\tSome text<br />\n\t<br />\n\t<br />\n\tSome more text</p>\n',
|
||||
dataProcessor.toDataFormat( '<p>Some text<br><br><br>Some more text</p>' ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_ticket_2886_4 : function()
|
||||
{
|
||||
var dataProcessor = CKEDITOR.instances.editor1.dataProcessor;
|
||||
|
||||
assert.areSame( '<p>\n\tSome text<br />\n\t<br />\n\t </p>\n',
|
||||
dataProcessor.toDataFormat( '<p>Some text<br><br> </p>' ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_ticket_2886_5 : function()
|
||||
{
|
||||
if ( CKEDITOR.env.ie )
|
||||
return;
|
||||
|
||||
var dataProcessor = CKEDITOR.instances.editor1.dataProcessor;
|
||||
|
||||
assert.areSame( '<p>\n\t </p>\n',
|
||||
dataProcessor.toDataFormat( '<p><br></p>' ) );
|
||||
},
|
||||
|
||||
test_toDataFormat_ticket_2886_6 : function()
|
||||
{
|
||||
var dataProcessor = CKEDITOR.instances.editor1.dataProcessor;
|
||||
|
||||
var source = '<p><br><br></p>';
|
||||
if ( CKEDITOR.env.ie )
|
||||
source = '<p><br></p>';
|
||||
|
||||
assert.areSame( '<p>\n\t<br />\n\t </p>\n',
|
||||
dataProcessor.toDataFormat( source ) );
|
||||
},
|
||||
|
||||
test_toHtml_ticket_2886_1 : function()
|
||||
{
|
||||
var dataProcessor = CKEDITOR.instances.editor1.dataProcessor;
|
||||
|
||||
var expected = '<p><br /></p>';
|
||||
if ( CKEDITOR.env.ie )
|
||||
expected = '<p>\xa0</p>';
|
||||
assert.areSame( expected, dataProcessor.toHtml( '<p></p>' ) );
|
||||
},
|
||||
|
||||
test_toHtml_ticket_2886_2 : function()
|
||||
{
|
||||
var dataProcessor = CKEDITOR.instances.editor1.dataProcessor;
|
||||
|
||||
var expected = '<p>Some text<br />Some other text</p>';
|
||||
assert.areSame( expected, dataProcessor.toHtml( '<p>Some text<br>Some other text</p>' ) );
|
||||
},
|
||||
|
||||
test_toHtml_ticket_2886_3 : function()
|
||||
{
|
||||
var dataProcessor = CKEDITOR.instances.editor1.dataProcessor;
|
||||
|
||||
var expected = '<p>Some text<br /><br /></p>';
|
||||
if ( CKEDITOR.env.ie )
|
||||
expected = '<p>Some text<br />\xa0</p>';
|
||||
assert.areSame( expected, dataProcessor.toHtml( '<p>Some text<br> </p>' ) );
|
||||
},
|
||||
|
||||
test_toHtml_ticket_2886_4 : function()
|
||||
{
|
||||
var dataProcessor = CKEDITOR.instances.editor1.dataProcessor;
|
||||
|
||||
var expected = '<p>Some text</p>';
|
||||
assert.areSame( expected, dataProcessor.toHtml( '<p>Some text<br></p>' ));
|
||||
},
|
||||
|
||||
test_ticket_3407 : function()
|
||||
{
|
||||
var editor = CKEDITOR.instances.editor1,
|
||||
dataProcessor = editor.dataProcessor,
|
||||
config = editor.config;
|
||||
|
||||
config.protectedSource.push( /<\?[\s\S]*?\?>/g ); // PHP Code
|
||||
config.protectedSource.push( /<%[\s\S]*?%>/g ); // ASP Code
|
||||
config.protectedSource.push( /(<asp:[^\>]+>[\s|\S]*?<\/asp:[^\>]+>)|(<asp:[^\>]+\/>)/gi ); // ASP.Net Code
|
||||
dataProcessor.writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
var html = getTextAreaValue( '_TEXTAREA1' );
|
||||
var protectedHtml = dataProcessor.toHtml( html );
|
||||
assert.areSame( html , dataProcessor.toDataFormat( protectedHtml ) );
|
||||
},
|
||||
|
||||
test_ticket_3591 : function()
|
||||
{
|
||||
var editor = CKEDITOR.instances.editor1,
|
||||
dataProcessor = editor.dataProcessor;
|
||||
|
||||
dataProcessor.writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
var html = getTextAreaValue( '_TEXTAREA_3591' );
|
||||
var protectedHtml = dataProcessor.toHtml( html );
|
||||
|
||||
assert.areSame( getTextAreaValue( CKEDITOR.env.ie ? '_TEXTAREA_3591_protected_ie' : '_TEXTAREA_3591_protected' ),
|
||||
protectedHtml );
|
||||
assert.areSame( getTextAreaValue( '_TEXTAREA_3591' ),
|
||||
dataProcessor.toDataFormat( protectedHtml ) );
|
||||
},
|
||||
|
||||
test_ticket_3591_2 : function()
|
||||
{
|
||||
var editor = CKEDITOR.instances.editor1,
|
||||
dataProcessor = editor.dataProcessor;
|
||||
|
||||
dataProcessor.writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
dataProcessor.writer.sortAttributes = true;
|
||||
|
||||
var html = getTextAreaValue( '_TEXTAREA_3591_2' );
|
||||
var protectedHtml = dataProcessor.toHtml( html );
|
||||
|
||||
assert.areSame( getTextAreaValue( '_TEXTAREA_3591_2' ),
|
||||
dataProcessor.toDataFormat( protectedHtml ) );
|
||||
},
|
||||
|
||||
test_ticket_3869_1 : function()
|
||||
{
|
||||
var editor = CKEDITOR.instances.editor1,
|
||||
dataProcessor = editor.dataProcessor;
|
||||
|
||||
dataProcessor.writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
var html = getTextAreaValue( '_TEXTAREA_3869_1' );
|
||||
var protectedHtml = dataProcessor.toHtml( html );
|
||||
|
||||
assert.areSame( html , dataProcessor.toDataFormat( protectedHtml ) );
|
||||
},
|
||||
|
||||
test_ticket_3869_2 : function()
|
||||
{
|
||||
var editor = CKEDITOR.instances.editor1,
|
||||
dataProcessor = editor.dataProcessor,
|
||||
config = editor.config;
|
||||
|
||||
config.protectedSource.push( /<\?[\s\S]*?\?>/g ); // PHP Code
|
||||
config.protectedSource.push( /<%[\s\S]*?%>/g ); // ASP Code
|
||||
config.protectedSource.push( /(<asp:[^\>]+>[\s|\S]*?<\/asp:[^\>]+>)|(<asp:[^\>]+\/>)/gi ); // ASP.Net Code
|
||||
config.protectedSource.push(/<gallery[\s\S]*?<\/gallery>/gi ); // custom protected source
|
||||
config.protectedSource.push(/<options[\s\S]*?<\/options>/gi );
|
||||
dataProcessor.writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
var html = getTextAreaValue( '_TEXTAREA_3869_2' );
|
||||
var protectedHtml = dataProcessor.toHtml( html );
|
||||
|
||||
assert.areSame( html , dataProcessor.toDataFormat( protectedHtml ) );
|
||||
},
|
||||
|
||||
/**
|
||||
* Test empty value attributes.
|
||||
*/
|
||||
test_ticket_3884 : function()
|
||||
{
|
||||
var editor = CKEDITOR.instances.editor1,
|
||||
dataProcessor = editor.dataProcessor;
|
||||
dataProcessor.writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
dataProcessor.writer.sortAttributes = true;
|
||||
|
||||
assert.areSame( '<p><a href="" name="">emptylink</a></p>',
|
||||
dataProcessor.toDataFormat( dataProcessor.toHtml( '<p><a href="" name="">emptylink</a></p>' ) ) );
|
||||
},
|
||||
|
||||
test_innerHtmlComments_ticket_3801 : function()
|
||||
{
|
||||
var editor = CKEDITOR.instances.editor1,
|
||||
dataProcessor = editor.dataProcessor;
|
||||
|
||||
dataProcessor.writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
|
||||
for ( var i = 1; i <= 7; i++ )
|
||||
{
|
||||
var html = getTextAreaValue( '_TEXTAREA_3801_' + i );
|
||||
var protectedHtml = dataProcessor.toHtml( html );
|
||||
|
||||
assert.areSame( getTextAreaValue( '_TEXTAREA_3801_' + i ),
|
||||
dataProcessor.toDataFormat( protectedHtml ) );
|
||||
}
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
|
||||
//window.onload = testCase.test_ticket_3884;
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<textarea id="editor1" class="ckeditor" cols="80" rows="10"></textarea>
|
||||
<textarea id="_TEXTAREA1"><script type="text/javascript">alert('>');</script><table><tbody><tr><!--- IE doesn't handle this comment ---><!--[if gte IE 6 ]>
|
||||
<![if lt IE 8 ]>
|
||||
gIE conditional comments
|
||||
<![endif]>
|
||||
<![endif]--><td><%Response.Write(now())%></td><td><asp:control_name id="some_id" runat="server"/></td><td><?php
|
||||
include ("head.html"); ?></td></tr></tbody></table><noscript>Your browser doesn't support JavaScript</noscript></textarea>
|
||||
<textarea id="_TEXTAREA_3591"><object><param /><param /><embed></embed></object></textarea>
|
||||
<textarea id="_TEXTAREA_3591_protected"><cke:object><cke:param></cke:param><cke:param></cke:param><cke:embed></cke:embed></cke:object></textarea>
|
||||
<textarea id="_TEXTAREA_3591_protected_ie"><?xml:namespace prefix="cke" /><cke:object><cke:param></cke:param><cke:param></cke:param><cke:embed></cke:embed></cke:object></textarea>
|
||||
<textarea id="_TEXTAREA_3801_1"><!-- foo --><p>bar</p></textarea>
|
||||
<textarea id="_TEXTAREA_3801_2"><p><!-- foo -->bar</p></textarea>
|
||||
<textarea id="_TEXTAREA_3801_3"><!-- foo --><p><!-- foo -->bar</p></textarea>
|
||||
<textarea id="_TEXTAREA_3801_4"><p>bar</p><!-- foo --></textarea>
|
||||
<textarea id="_TEXTAREA_3801_5">bar<!-- foo --></textarea>
|
||||
<textarea id="_TEXTAREA_3801_6"><!-- foo -->bar</textarea>
|
||||
<textarea id="_TEXTAREA_3801_7"><p><!-- foo -->bar</p><p><!-- foo -->bar</p></textarea>
|
||||
<textarea id="_TEXTAREA_3869_1">#3869<script language="Javascript" type="text/javascript">
|
||||
<!--
|
||||
alert('-->');
|
||||
//-->
|
||||
</script></textarea>
|
||||
<textarea id="_TEXTAREA_3869_2">#3869<gallery>
|
||||
file.jpg
|
||||
<options name="test1" value="value1"></options>
|
||||
<options name="test2" value="value2"></options>
|
||||
</gallery><?
|
||||
echo '<script type="text/javascript">';
|
||||
echo '<!--alert("-->");//-->';
|
||||
echo '</script>';
|
||||
?><!--<%Response.Write(now())%>//-->invalid<?
|
||||
echo 'bbb<script>
|
||||
<!--
|
||||
ccc();<!-- </script><!-- </script>
|
||||
//--></script>
|
||||
<script><!--
|
||||
<!--
|
||||
ffff();
|
||||
//--></script>
|
||||
ddd';
|
||||
?>html</textarea>
|
||||
<textarea id="_TEXTAREA_3591_2"><object classid="clsid"><param name="movie" value="movie.swf" /><embed src="movie.swf" type="application/x-shockwave-flash"></embed></object></textarea>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,217 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Plugin: list</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
/**
|
||||
* Load the editor and wait for fully interactable.
|
||||
* @param {Object} elementId
|
||||
* @parma {Object} mode
|
||||
* @param {Object} config
|
||||
* @param {Object} callback Continuation with {@param editor}.
|
||||
* @param {Object} context
|
||||
*/
|
||||
function prepareEditor( elementId, mode, config, callback, context )
|
||||
{
|
||||
CKEDITOR.on( 'instanceReady',
|
||||
function( evt )
|
||||
{
|
||||
var isMe = mode == CKEDITOR.ELEMENT_MODE_REPLACE ?
|
||||
evt.editor.name == elementId
|
||||
: evt.editor.element.$ ==
|
||||
document.getElementById( elementId );
|
||||
if ( isMe )
|
||||
{
|
||||
var editor = evt.editor;
|
||||
// Force result data unformatted.
|
||||
editor.dataProcessor.writer._.rules = {};
|
||||
callback.call( context, editor );
|
||||
}
|
||||
}, this );
|
||||
|
||||
mode = mode || CKEDITOR.ELEMENT_MODE_REPLACE;
|
||||
switch( mode )
|
||||
{
|
||||
case CKEDITOR.ELEMENT_MODE_REPLACE :
|
||||
CKEDITOR.replace( elementId, config );
|
||||
break;
|
||||
case CKEDITOR.ELEMENT_MODE_APPENDTO :
|
||||
CKEDITOR.appendTo( elementId, config );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* IE always returning CRLF for line-feed, so remove it when retrieving
|
||||
* pre-formated text from text area.
|
||||
*/
|
||||
function getTextAreaValue( id )
|
||||
{
|
||||
return CKEDITOR.document.getById( id ).getValue().replace( /\r/gi, '' );
|
||||
}
|
||||
|
||||
CKEDITOR.test.addTestCase( ( function()
|
||||
{
|
||||
|
||||
// Local references.
|
||||
var assert = CKEDITOR.test.assert,
|
||||
doc = CKEDITOR.document,
|
||||
action = YAHOO.util.UserAction,
|
||||
selector = YAHOO.util.Selector;
|
||||
|
||||
/**
|
||||
* Set the range with the start/end position specified by the locator, which in form of bookmark2.
|
||||
* @param {Object} range
|
||||
* @param {Array} startPosition range start path including offset
|
||||
* @param {Array|Boolean} endPositoin range end path including offset or is collapsed
|
||||
*/
|
||||
function setRange( range, startPosition, endPositoin )
|
||||
{
|
||||
var bm = {
|
||||
end : null,
|
||||
start : null,
|
||||
is2: true,
|
||||
startOffset : 0,
|
||||
endoffset : 0
|
||||
};
|
||||
bm.start = startPosition.slice( 0, startPosition.length - 1 );
|
||||
bm.startOffset = startPosition[ startPosition.length -1];
|
||||
if( endPositoin === true )
|
||||
{
|
||||
bm.end = bm.start.slice();
|
||||
bm.endOffset = bm.startOffset;
|
||||
}
|
||||
else
|
||||
{
|
||||
bm.end = endPositoin.slice( 0, endPositoin.length - 1 );
|
||||
bm.endOffset = endPositoin[ endPositoin.length -1 ];
|
||||
}
|
||||
range.moveToBookmark( bm );
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
/**
|
||||
* Test remove numbered list with 'enterMode = BR'.
|
||||
*/
|
||||
test_ticket_3151 : function()
|
||||
{
|
||||
prepareEditor( 'test_ticket_3151_editor', null,
|
||||
{ enterMode : CKEDITOR.ENTER_BR },
|
||||
function( editor )
|
||||
{
|
||||
this.resume( function()
|
||||
{
|
||||
editor.focus();
|
||||
|
||||
var doc = editor.document,
|
||||
range = new CKEDITOR.dom.range( doc );
|
||||
|
||||
setRange( range, [ 1, 0, 0, 0, 0 ], true );
|
||||
var sel = editor.getSelection();
|
||||
sel.selectRanges( [ range ] );
|
||||
|
||||
// Waiting for 'comand state' effected.
|
||||
this.wait( function(){
|
||||
// Remove list.
|
||||
editor.execCommand( 'numberedlist' );
|
||||
assert.areSame( getTextAreaValue( 'test_ticket_3151_result' ),
|
||||
editor.getData(),
|
||||
'Remove list result not correct.' );
|
||||
}, 1000 );
|
||||
|
||||
} );
|
||||
}, this );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
/**
|
||||
* Test merge newlist with previous list.
|
||||
*/
|
||||
test_ticket_3820 : function()
|
||||
{
|
||||
prepareEditor( 'test_ticket_3820_editor', null,
|
||||
{ enterMode : CKEDITOR.ENTER_BR },
|
||||
function( editor )
|
||||
{
|
||||
this.resume( function()
|
||||
{
|
||||
editor.focus();
|
||||
|
||||
var doc = editor.document,
|
||||
range = new CKEDITOR.dom.range( doc );
|
||||
setRange( range, [ 1, 1, 0 ], true );
|
||||
var sel = editor.getSelection();
|
||||
sel.selectRanges( [ range ] );
|
||||
|
||||
// Waiting for 'comand state' effected.
|
||||
this.wait( function(){
|
||||
// Remove list.
|
||||
editor.execCommand( 'bulletedlist' );
|
||||
assert.areSame( getTextAreaValue( 'test_ticket_3820_result' ),
|
||||
editor.getData(),
|
||||
'Merge list result not correct.' );
|
||||
}, 1000 );
|
||||
|
||||
} );
|
||||
}, this );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
/**
|
||||
* Test remove list first list item not merging with previous text node.
|
||||
*/
|
||||
test_ticket_3836 : function()
|
||||
{
|
||||
prepareEditor( 'test_ticket_3836_editor', null,
|
||||
{ enterMode : CKEDITOR.ENTER_BR },
|
||||
function( editor )
|
||||
{
|
||||
this.resume( function()
|
||||
{
|
||||
this.wait( function ()
|
||||
{
|
||||
editor.focus();
|
||||
|
||||
var doc = editor.document,
|
||||
range = new CKEDITOR.dom.range( doc );
|
||||
setRange( range, [ 1, 1, 0, 0 ], [ 1, 1, 1, 1 ] );
|
||||
var sel = editor.getSelection();
|
||||
sel.selectRanges( [ range ] );
|
||||
|
||||
// Waiting for 'comand state' effected.
|
||||
this.wait( function(){
|
||||
// Remove list.
|
||||
editor.execCommand( 'bulletedlist' );
|
||||
assert.areSame( getTextAreaValue( 'test_ticket_3836_result' ),
|
||||
editor.getData(),
|
||||
'Remove list result not correct.' );
|
||||
}, 1000 );
|
||||
}, 1000 );
|
||||
|
||||
} );
|
||||
}, this );
|
||||
this.wait();
|
||||
},
|
||||
|
||||
name :document.title
|
||||
};
|
||||
} )() );
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<textarea id="test_ticket_3151_editor"><ol><li>text</li></ol></textarea>
|
||||
<textarea id="test_ticket_3151_result">text</textarea>
|
||||
<textarea id="test_ticket_3820_editor"><ul><li>bullet line 1</li><li>bullet line 2</li></ul><p>Second line</p></textarea>
|
||||
<textarea id="test_ticket_3820_result"><ul><li>bullet line 1</li><li>bullet line 2</li><li>Second line</li></ul></textarea>
|
||||
<textarea id="test_ticket_3773_editor"><ol><li>line1</li><li>line2</li></ol></textarea>
|
||||
<textarea id="test_ticket_3773_result">line1<br />line2</textarea>
|
||||
<textarea id="test_ticket_3836_editor">line1<ul><li>item1</li><li>item2</li></ul>line2</textarea>
|
||||
<textarea id="test_ticket_3836_result">line1<br />item1<br />item2<br />line2</textarea>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,49 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Plugin: selection</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
CKEDITOR.plugins.load( [ 'selection' ] );
|
||||
//]]>
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
CKEDITOR.test.addTestCase( (function()
|
||||
{
|
||||
var assert = CKEDITOR.test.assert;
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
|
||||
return {
|
||||
test_selection_ie : function()
|
||||
{
|
||||
if ( !CKEDITOR.env.ie )
|
||||
return;
|
||||
|
||||
var $range = document.body.createTextRange();
|
||||
$range.findText( 'This' );
|
||||
$range.select();
|
||||
|
||||
var range = doc.getSelection().getRanges()[ 0 ];
|
||||
range.select();
|
||||
|
||||
var $range2 = document.selection.createRange();
|
||||
assert.areSame( 0, $range.compareEndPoints( 'StartToStart', $range2 ), 'StartToStart' );
|
||||
assert.areSame( 0, $range.compareEndPoints( 'EndToEnd', $range2 ), 'EndToEnd' );
|
||||
},
|
||||
|
||||
name : document.title
|
||||
};
|
||||
})());
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">CKEditor</a>.</p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,596 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Plugin: styles</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../test.css" />
|
||||
<script type="text/javascript" src="../../../ckeditor.js"></script>
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
CKEDITOR.plugins.load( [ 'styles', 'domiterator', 'htmldataprocessor' ] );
|
||||
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
var testCase;
|
||||
|
||||
CKEDITOR.test.addTestCase( testCase = (function()
|
||||
{
|
||||
// Local references.
|
||||
var assert = CKEDITOR.test.assert;
|
||||
var getInnerHtml = CKEDITOR.test.getInnerHtml;
|
||||
|
||||
function getInnerHtmlParsed( element )
|
||||
{
|
||||
var dataProcessor = new CKEDITOR.htmlDataProcessor();
|
||||
dataProcessor.writer = new CKEDITOR.htmlParser.basicWriter();
|
||||
return dataProcessor.toDataFormat( getInnerHtml( element, false ) );
|
||||
}
|
||||
|
||||
var doc = new CKEDITOR.dom.document( document );
|
||||
|
||||
return {
|
||||
test_inline1 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this is some sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ).getFirst(), 5 );
|
||||
range.setEnd( doc.getById( '_P1' ).getFirst(), 7 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( 'this <b>is</b> some sample text', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_inline2 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <b>is some </b>sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ).getChild( 1 ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ), 2 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'i' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( 'this <i><b>is some </b></i>sample text', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_inline3 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <b>is some </b>sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ).getChild( 1 ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ).getChild( 1 ).getFirst(), 2 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'i' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( 'this <b><i>is</i> some </b>sample text', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
// Inline - Remove inner duplicates.
|
||||
test_inline4 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <b>is some </b>sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ), 3 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b>this is some sample text</b>', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
// Inline - Merge with next.
|
||||
test_inline5 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <b>is some </b>sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ), 1 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b>this is some </b>sample text', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
// Inline - Merge with previous.
|
||||
test_inline6 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <b>is some </b>sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 2 );
|
||||
range.setEnd( doc.getById( '_P1' ).getChild( 2 ), 6 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( 'this <b>is some sample</b> text', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
// Inline - Merge several with next.
|
||||
test_inline7 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( '<i><u>this </u></i><b><i><u>is</u> some</i> sample</b> text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ), 1 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b><i><u>this is</u> some</i> sample</b> text', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
// Inline - Merge several with previous.
|
||||
test_inline8 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <b>is <i>some <u>sample</u></i></b><i><u> text</u></i>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 2 );
|
||||
range.setEnd( doc.getById( '_P1' ), 3 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( 'this <b>is <i>some <u>sample text</u></i></b>', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_inline9 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <i>is some </i>sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ).getChild( 1 ), 0 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b>this </b><i>is some </i>sample text', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_inline10 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this is some sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ), 1 );
|
||||
|
||||
var style = new CKEDITOR.style(
|
||||
{
|
||||
element : 'b',
|
||||
attributes :
|
||||
{
|
||||
lang : 'it',
|
||||
title : 'test'
|
||||
},
|
||||
styles :
|
||||
{
|
||||
'font-size' : '10pt',
|
||||
'text-decoration' : 'line-through'
|
||||
}
|
||||
} );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b lang="it" style="font-size:10pt;text-decoration:line-through;" title="test">this is some sample text</b>', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_inline11 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <b lang="it" class="sample">is</b> <b lang="it" style="font-size: 10pt; text-decoration: line-through;" title="test">some sample</b> <b>t</b>ext' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ), 7 );
|
||||
|
||||
var style = new CKEDITOR.style(
|
||||
{
|
||||
element : 'b',
|
||||
attributes :
|
||||
{
|
||||
lang : 'it',
|
||||
title : 'test'
|
||||
},
|
||||
styles :
|
||||
{
|
||||
'font-size' : '10pt',
|
||||
'text-decoration' : 'line-through'
|
||||
}
|
||||
} );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b lang="it" style="font-size: 10pt; text-decoration: line-through;" title="test">this <b class="sample">is</b> some sample text</b>', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_inline11 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <span class="a">is</span> some <span class="b">sample</span> text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ), 5 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'span', attributes : { 'class' : 'b' } } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<span class="b">this <span class="a">is</span> some sample text</span>', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_inline12 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <span style="font-size:12pt; font-weight:600">is</span> some <span style="font-size:10px;">sample</span> text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ), 5 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'span', styles : { 'font-size' : '1.5em' } } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<span style="font-size:1.5em;">this <span style="font-weight:600;">is</span> some sample text</span>', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_inline13 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this <b>is some sample</b> text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ).getChild( 1 ).getFirst(), 3 );
|
||||
range.setEnd( doc.getById( '_P1' ), 3 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'i' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( 'this <b>is <i>some sample</i></b><i> text</i>', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_inline14 : function()
|
||||
{
|
||||
var para = doc.getById( '_P1' );
|
||||
|
||||
para.setHtml( 'this is some sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( para.getFirst(), 0 );
|
||||
range.setEnd( para.getFirst(), 7 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b>this is</b> some sample text', getInnerHtml( '_P1' ), 'First range' );
|
||||
|
||||
para.setHtml( para.getHtml() );
|
||||
|
||||
range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( para.getFirst().getFirst(), 5 );
|
||||
range.setEnd( para.getChild( 1 ), 5 );
|
||||
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b>this is some</b> sample text', getInnerHtml( '_P1' ), 'Second range' );
|
||||
},
|
||||
|
||||
test_inline15 : function()
|
||||
{
|
||||
var para = doc.getById( '_P1' );
|
||||
|
||||
para.setHtml( 'this is some sample text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( para.getFirst(), 0 );
|
||||
range.setEnd( para.getFirst(), 7 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'span', styles : { 'font-family' : '#(family)' } }, { family : 'Arial,Helvetica,sans-serif' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<span style="font-family:arial,helvetica,sans-serif;">this is</span> some sample text', getInnerHtml( '_P1' ), 'First range' );
|
||||
|
||||
para.setHtml( para.getHtml() );
|
||||
|
||||
range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( para.getFirst().getFirst(), 5 );
|
||||
range.setEnd( para.getChild( 1 ), 5 );
|
||||
|
||||
style = new CKEDITOR.style( { element : 'span', styles : { 'font-family' : '#(family)' } }, { family : 'Georgia,serif' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<span style="font-family:arial,helvetica,sans-serif;">this <span style="font-family:georgia,serif;">is</span></span><span style="font-family:georgia,serif;"> some</span> sample text', getInnerHtml( '_P1' ), 'Second range' );
|
||||
},
|
||||
|
||||
test_inline16 : function()
|
||||
{
|
||||
var para = doc.getById( '_P1' );
|
||||
|
||||
para.setHtml( '<b lang="pt" style="font-size:11pt;color:red;">this is some sample text</b>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( para.getFirst().getFirst(), 4 );
|
||||
range.setEnd( para.getFirst(), 10 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b', styles : { color : 'red', 'font-weight' : '700' } } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b lang="pt" style="color:red;font-size:11pt;">this<b style="font-weight:700;"> is some sample text</b></b>', getInnerHtml( '_P1' ), 'First range' );
|
||||
},
|
||||
|
||||
test_inline_nobreak1 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'this is <a href="http://example.com/">some sample</a> text' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 0 );
|
||||
range.setEnd( doc.getById( '_P1' ).getChild( 1 ).getFirst(), 4 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<b>this is </b><a href="http://example.com/"><b>some</b> sample</a> text', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_ticket_2040 : function()
|
||||
{
|
||||
doc.getById( '_P1' ).setHtml( 'This is some <strong>sample text<\/strong>. You are using <a href="http://www.fckeditor.net/">ckeditor<\/a>.' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStart( doc.getById( '_P1' ), 1 );
|
||||
range.setEnd( doc.getById( '_P1' ).getChild( 1 ).getFirst(), 6 );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'i' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( 'this is some <strong><i>sample</i> text<\/strong>. you are using <a href="http://www.fckeditor.net/">ckeditor<\/a>.', getInnerHtml( '_P1' ) );
|
||||
},
|
||||
|
||||
test_checkElementRemovable1 : function()
|
||||
{
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<b>Test</b>', doc );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
|
||||
assert.isTrue( style.checkElementRemovable( element ) );
|
||||
},
|
||||
|
||||
test_checkElementRemovable2 : function()
|
||||
{
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<b>Test</b>', doc );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'i' } );
|
||||
|
||||
assert.isFalse( style.checkElementRemovable( element ) );
|
||||
},
|
||||
|
||||
test_checkElementRemovable3 : function()
|
||||
{
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<b>Test</b>', doc );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b', attributes : { lang : 'pt' } } );
|
||||
|
||||
assert.isTrue( style.checkElementRemovable( element ) );
|
||||
},
|
||||
|
||||
test_checkElementRemovable4 : function()
|
||||
{
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<b>Test</b>', doc );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b', attributes : { lang : 'pt' } } );
|
||||
|
||||
assert.isFalse( style.checkElementRemovable( element, true ) );
|
||||
},
|
||||
|
||||
test_checkElementRemovable5 : function()
|
||||
{
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<span lang="pt" style="color : #fff">Test</span>', doc );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'span', attributes : { lang : 'pt' }, style : { color : '#ffffff' } } );
|
||||
|
||||
assert.isTrue( style.checkElementRemovable( element, true ) );
|
||||
},
|
||||
|
||||
test_checkElementRemovable6 : function()
|
||||
{
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<span lang="pt" style="color : #fff">Test</span>', doc );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'span', attributes : { lang : 'pt' }, style : { color : '#fffff0' } } );
|
||||
|
||||
assert.isTrue( style.checkElementRemovable( element, true ) );
|
||||
},
|
||||
|
||||
test_checkElementRemovable7 : function()
|
||||
{
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<span lang="pt" style="color : #fff">Test</span>', doc );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'span', attributes : { lang : 'fr' }, style : { color : '#ffffff' } } );
|
||||
|
||||
assert.isFalse( style.checkElementRemovable( element, true ) );
|
||||
},
|
||||
|
||||
test_checkElementRemovable8 : function()
|
||||
{
|
||||
var element = CKEDITOR.dom.element.createFromHtml( '<span lang="pt" style="font-size: 10px">Test</span>', doc );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'span', attributes : { lang : 'pt' , style : 'font-size:10px;' } } );
|
||||
|
||||
assert.isTrue( style.checkElementRemovable( element, true ) );
|
||||
},
|
||||
|
||||
test_ticket_3091 : function()
|
||||
{
|
||||
var element = doc.getById( '_P1' );
|
||||
element.setHtml( 'outter<table><tr><td>text</td></tr></table>outter' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( element );
|
||||
|
||||
var styleDef =
|
||||
{
|
||||
element : 'span',
|
||||
styles : { 'font-family' : '#(family)' },
|
||||
overrides : [ { element : 'font', attributes : { 'face' : null } } ]
|
||||
};
|
||||
|
||||
var style = new CKEDITOR.style( styleDef, { 'family' : 'Arial,Helvetica,sans-serif' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
style = new CKEDITOR.style( styleDef, { 'family' : 'Comic Sans MS,cursive' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
style = new CKEDITOR.style( styleDef, { 'family' : 'Courier New,Courier,monospace' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<span style="font-family:couriernew,courier,monospace;">outter</span><table><tbody><tr><td><span style="font-family:couriernew,courier,monospace;">text</span></td></tr></tbody></table><span style="font-family:couriernew,courier,monospace;">outter</span>', getInnerHtml( element ) );
|
||||
},
|
||||
|
||||
test_ticket_3091_2 : function()
|
||||
{
|
||||
var element = doc.getById( '_P1' );
|
||||
element.setHtml( 'outter<p>text</p>outter' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( element );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'i', attributes : { title : 'x' } } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<i title="x">outter</i><p><i title="x">text</i></p><i title="x">outter</i>', getInnerHtml( element ), 'First step failed' );
|
||||
|
||||
style = new CKEDITOR.style( { element : 'i', attributes : { title : 'y' } } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<i title="y">outter</i><p><i title="y">text</i></p><i title="y">outter</i>', getInnerHtml( element ), 'Second step failed' );
|
||||
|
||||
style = new CKEDITOR.style( { element : 'i', attributes : { title : 'z' } } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<i title="z">outter</i><p><i title="z">text</i></p><i title="z">outter</i>', getInnerHtml( element ), 'Third step failed' );
|
||||
},
|
||||
|
||||
// TC based on the state of the second step in the above test, before it got fixed.
|
||||
test_ticket_3091_3 : function()
|
||||
{
|
||||
var element = doc.getById( '_P1' );
|
||||
element.setHtml( '<p><i title="y">text</i><i title="x"></i></p><i title="y">outter</i><i title="x"></i>' );
|
||||
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( element );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'i', attributes : { title : 'z' } } );
|
||||
style.applyToRange( range );
|
||||
|
||||
assert.areSame( '<p><i title="z">text</i></p><i title="z">outter</i>', getInnerHtml( element ) );
|
||||
},
|
||||
|
||||
// Remove inline style when range collapsed at element boundaries,
|
||||
// move out of the removing-style element, with inner style copied.
|
||||
test_ticket_3309 : function()
|
||||
{
|
||||
var element = doc.getById( '_P1' );
|
||||
element.setHtml( 'this is some <b><i id="_i1">styles</i></b> text' );
|
||||
|
||||
// This is some <b><i>styles^</i></b> text
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( doc.getById( '_i1' ), CKEDITOR.POSITION_BEFORE_END );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.removeFromRange( range );
|
||||
|
||||
assert.areSame( 'this is some <b><i id="_i1">styles</i></b><i></i> text', getInnerHtml( element ) );
|
||||
},
|
||||
|
||||
// No inner style preserved, simply move out of the removing-style element.
|
||||
test_ticket_3309_2 : function()
|
||||
{
|
||||
var element = doc.getById( '_P1' );
|
||||
element.setHtml( 'this is some <b id="_b1">styles</b> text' );
|
||||
|
||||
// This is some <b>styles^</b> text
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( doc.getById( '_b1' ), CKEDITOR.POSITION_BEFORE_END );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' } );
|
||||
style.removeFromRange( range );
|
||||
// This is some <b>styles</b>^ text
|
||||
assert.areSame( doc.getById( '_b1' ).getParent().$, range.startContainer.$ );
|
||||
assert.areSame( 2, range.startOffset );
|
||||
assert.areSame( 'this is some <b id="_b1">styles</b> text', getInnerHtml( element ) );
|
||||
},
|
||||
|
||||
// With style overrides.
|
||||
test_ticket_3309_3 : function()
|
||||
{
|
||||
var element = doc.getById( '_P1' );
|
||||
element.setHtml( 'text <strong><bold><span><b><i id="_i1">styles</i></b></span></bold></strong>' );
|
||||
|
||||
// text <strong><bold><span><b><i id="_i1">^styles</i></b></span></bold></strong>
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( doc.getById( '_i1' ), CKEDITOR.POSITION_AFTER_START );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'b' , overrides : [ 'strong', 'bold' ] } );
|
||||
style.removeFromRange( range );
|
||||
|
||||
// text <span><i>^</i></span><bold><span><b><i>styles</i></b></span></bold>
|
||||
assert.areSame( 'text <span><i></i></span><strong><bold><span><b><i id="_i1">styles</i></b></span></bold></strong>', getInnerHtml( element ) );
|
||||
},
|
||||
|
||||
// Test convert multiple paragraphs to one <pre>.
|
||||
test_ticket_3188 : function()
|
||||
{
|
||||
var element = doc.getById( '_P1' );
|
||||
element.setHtml( '<p id="_P2">\nparagraph1<br /><br />para\t\ngraph2</p><p id="_P3">\nparagraph3\n</p>' );
|
||||
|
||||
// <p id="_P2">[paragraph1</p><p id="_P3">paragraph2]</p>
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.setStartAt( doc.getById( '_P2' ), CKEDITOR.POSITION_AFTER_START );
|
||||
range.setEndAt( doc.getById( '_P3' ), CKEDITOR.POSITION_BEFORE_END );
|
||||
|
||||
var style = new CKEDITOR.style( { element : 'pre' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
var result = getInnerHtmlParsed( element );
|
||||
assert.areSame( '<pre>paragraph1\n\npara graph2\n\nparagraph3</pre>', result );
|
||||
},
|
||||
|
||||
// Test convert one <pre> to multiple paragraphs.
|
||||
test_ticket_3188_2 : function()
|
||||
{
|
||||
var element = doc.getById( '_P1' );
|
||||
element.setHtml( '<pre>\n\tparagraph1\t\tparagraph1\nparagraph2\n\t\n\tpara graph3\n</pre>' );
|
||||
|
||||
//<pre>[\n\tparagraph1\t\tparagraph1\nparagraph2\n\t\n\tpara graph3\n]</pre>
|
||||
var range = new CKEDITOR.dom.range( doc );
|
||||
range.selectNodeContents( doc.getById( '_P1' ).getFirst() );
|
||||
var style = new CKEDITOR.style( { element : 'p' } );
|
||||
style.applyToRange( range );
|
||||
|
||||
var result = getInnerHtmlParsed( element );
|
||||
|
||||
if ( CKEDITOR.env.webkit || CKEDITOR.env.opera )
|
||||
result = result.replace( /\xa0/g, ' ' );
|
||||
|
||||
assert.areSame( '<p> paragraph1 paragraph1<br />paragraph2</p><p> para graph3</p>',
|
||||
result );
|
||||
},
|
||||
name : document.title
|
||||
};
|
||||
})() );
|
||||
//window.onload = testCase.test_ticket_3188;
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="_P1"></div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,81 +0,0 @@
|
||||
/*
|
||||
Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.html or http://ckeditor.com/license
|
||||
*/
|
||||
|
||||
body
|
||||
{
|
||||
margin:10px;
|
||||
}
|
||||
|
||||
#testLogger
|
||||
{
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
left: 10px;
|
||||
top: 10px;
|
||||
font-family: Monospace;
|
||||
border: solid 2px black;
|
||||
background: #ffffff;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
/* IE6 */
|
||||
* html #testLogger
|
||||
{
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#testLogger.testAll
|
||||
{
|
||||
position: static;
|
||||
}
|
||||
|
||||
#testLogger pre
|
||||
{
|
||||
margin: 0 0 0 40px;
|
||||
background-color: #f0f0f0;
|
||||
padding: 1px 4px 1px 4px;
|
||||
}
|
||||
|
||||
#testLogger div
|
||||
{
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
#testLogger div div
|
||||
{
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.testEntry
|
||||
{
|
||||
padding: 5px;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.testEntry:hover
|
||||
{
|
||||
background-color: #ffff99;
|
||||
}
|
||||
|
||||
.testFail, .testPass, .testIgnore
|
||||
{
|
||||
padding-left: 3px;
|
||||
padding-right: 3px;
|
||||
}
|
||||
|
||||
.testFail
|
||||
{
|
||||
background-color: #ff0000;
|
||||
}
|
||||
|
||||
.testPass
|
||||
{
|
||||
background-color: #00ff00;
|
||||
}
|
||||
|
||||
.testIgnore
|
||||
{
|
||||
background-color: #f1f100;
|
||||
}
|
||||
@@ -1,93 +0,0 @@
|
||||
/*
|
||||
Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
|
||||
For licensing, see LICENSE.html or http://ckeditor.com/license
|
||||
*/
|
||||
|
||||
/*jsl:import yuitest.js*/
|
||||
|
||||
// Inject the YUI Test files into the page.
|
||||
// URLs copied from http://developer.yahoo.com/yui/yuitest/
|
||||
document.write(
|
||||
'<script type="text/javascript" src="' +
|
||||
CKEDITOR.basePath +
|
||||
'_tests/yuitest.js"></script>' );
|
||||
|
||||
document.write(
|
||||
'<script type="text/javascript" src="' +
|
||||
CKEDITOR.basePath +
|
||||
'_source/' +
|
||||
'core/test.js"></script>' );
|
||||
|
||||
(function()
|
||||
{
|
||||
var createLogger = function()
|
||||
{
|
||||
document.body.appendChild( document.createElement( 'div' ) ).id = 'testLogger';
|
||||
};
|
||||
|
||||
var outputResult = function( text )
|
||||
{
|
||||
var div = document.getElementById('testLogger').appendChild( document.createElement( 'div' ) );
|
||||
div.className = 'testEntry';
|
||||
div.innerHTML = text;
|
||||
};
|
||||
|
||||
var htmlEncode = function( data )
|
||||
{
|
||||
if ( typeof data != 'string' )
|
||||
return data;
|
||||
|
||||
return data.replace(
|
||||
/&/g, '&' ).replace(
|
||||
/</g, '<' ).replace(
|
||||
/>/g, '>' );
|
||||
};
|
||||
|
||||
window.onload = function()
|
||||
{
|
||||
createLogger();
|
||||
var runner = YAHOO.tool.TestRunner;
|
||||
|
||||
var handleTestResult = function( data )
|
||||
{
|
||||
switch( data.type )
|
||||
{
|
||||
case runner.TEST_FAIL_EVENT:
|
||||
|
||||
var expected = data.error.expected;
|
||||
if ( expected && expected.nodeType )
|
||||
expected += ' (' + ( expected.nodeType == 1 ? expected.nodeName : expected.nodeValue ) + ')';
|
||||
|
||||
var actual = data.error.actual;
|
||||
if ( actual && actual.nodeType )
|
||||
actual += ' (' + ( actual.nodeType == 1 ? actual.nodeName : actual.nodeValue ) + ')';
|
||||
|
||||
outputResult(
|
||||
'<span class="testFail">FAIL</span> Test named "' + data.testName +
|
||||
'" failed with message: "' + htmlEncode( data.error.message ) +
|
||||
'".<div>Expected:</div><pre>' + htmlEncode( expected ) +
|
||||
'<br></pre><div>Actual:</div><pre>' + htmlEncode( actual ) + '<br></pre>' );
|
||||
break;
|
||||
case runner.TEST_PASS_EVENT:
|
||||
outputResult( '<span class="testPass">PASS</span> Test named "' + data.testName + '" passed.' );
|
||||
break;
|
||||
case runner.TEST_IGNORE_EVENT:
|
||||
outputResult( '<span class="testIgnore">IGNORE</span> Test named "' + data.testName + '" was ignored.' );
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
runner.subscribe(runner.TEST_FAIL_EVENT, handleTestResult);
|
||||
runner.subscribe(runner.TEST_IGNORE_EVENT, handleTestResult);
|
||||
runner.subscribe(runner.TEST_PASS_EVENT, handleTestResult);
|
||||
|
||||
if ( window.parent && window.parent.onTestStart )
|
||||
{
|
||||
runner.subscribe(runner.TEST_CASE_BEGIN_EVENT, window.parent.onTestStart);
|
||||
runner.subscribe(runner.TEST_CASE_COMPLETE_EVENT, window.parent.onTestComplete);
|
||||
}
|
||||
|
||||
if ( !CKEDITOR.test.deferRunner )
|
||||
runner.run();
|
||||
};
|
||||
})();
|
||||
@@ -1,114 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>CKEditor Core Tests Runner</title>
|
||||
<link rel="stylesheet" type="text/css" href="test.css" />
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
|
||||
var testList =
|
||||
[
|
||||
'core/ajax',
|
||||
'core/bootstrap',
|
||||
'core/ckeditor',
|
||||
'core/editor',
|
||||
'core/env',
|
||||
'core/event',
|
||||
'core/plugins',
|
||||
'core/scriptloader',
|
||||
'core/tools',
|
||||
'core/xml',
|
||||
'core/dom/document',
|
||||
'core/dom/documentfragment',
|
||||
'core/dom/element',
|
||||
'core/dom/node',
|
||||
'core/dom/range',
|
||||
'core/dom/text',
|
||||
'core/dom/walker',
|
||||
'core/dom/window',
|
||||
'core/htmlparser/fragment',
|
||||
'core/htmlparser/htmlparser',
|
||||
'plugins/domiterator/domiterator',
|
||||
'plugins/htmldataprocessor/htmldataprocessor',
|
||||
'plugins/link/link',
|
||||
'plugins/list/list',
|
||||
'plugins/styles/styles',
|
||||
'plugins/selection/selection'
|
||||
];
|
||||
|
||||
var currentTest;
|
||||
var currentTime;
|
||||
var totalTime;
|
||||
var totalFailed = 0;
|
||||
var totalPassed = 0;
|
||||
|
||||
function runTest()
|
||||
{
|
||||
currentTest = testList.shift();
|
||||
|
||||
if ( currentTest )
|
||||
document.getElementById( 'testFrame' ).src = currentTest + '.html';
|
||||
}
|
||||
|
||||
function onTestStart( data )
|
||||
{
|
||||
var div = document.getElementById('testLogger').appendChild( document.createElement( 'div' ) );
|
||||
div.className = 'testEntry';
|
||||
div.innerHTML = 'Testing "<a href="' + currentTest + '.html" target="_blank">' + data.testCase.name + '</a>"...';
|
||||
|
||||
currentTime = new Date();
|
||||
|
||||
if ( !totalTime )
|
||||
totalTime = currentTime;
|
||||
}
|
||||
|
||||
function onTestComplete( data )
|
||||
{
|
||||
var finishTime = new Date();
|
||||
|
||||
var failed = data.results.failed;
|
||||
var passed = data.results.passed;
|
||||
|
||||
var html = '<span class="testIgnore">Unknown</span>';
|
||||
|
||||
if ( failed > 0 )
|
||||
html = '<span class="testFail">FAIL</span>';
|
||||
else
|
||||
html = '<span class="testPass">PASS</span>';
|
||||
|
||||
html += ' Test "<a href="' + currentTest + '.html" target="_blank">' + data.testCase.name + '</a>" (' + failed + ' failed / ' + passed + ' passed) - ' + ( finishTime - currentTime ) + 'ms';
|
||||
|
||||
var div = document.getElementById('testLogger').lastChild;
|
||||
div.innerHTML = html;
|
||||
|
||||
totalFailed += failed;
|
||||
totalPassed += passed;
|
||||
|
||||
document.getElementById('testFailed').innerHTML = totalFailed;
|
||||
document.getElementById('testPassed').innerHTML = totalPassed;
|
||||
document.getElementById('totalTime').innerHTML = finishTime - totalTime;
|
||||
|
||||
document.title = totalFailed + ' failed / ' + totalPassed + ' passed - CKEditor Core Tests Runner';
|
||||
|
||||
runTest();
|
||||
}
|
||||
|
||||
window.onload = function()
|
||||
{
|
||||
// IE was "caching" the latest logged div on refresh. So, we must clean it
|
||||
// on startup.
|
||||
document.getElementById('testLogger').innerHTML = '';
|
||||
|
||||
runTest();
|
||||
};
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>CKEditor Core Tests Runner (<span id="testFailed">0</span> failed / <span id="testPassed">0</span> passed) - <span id="totalTime">0</span>ms</h1>
|
||||
<iframe id="testFrame" src="javascript:;" style="position: absolute; width: 50px; height: 50px; left: -1000px">
|
||||
</iframe>
|
||||
<div id="testLogger" class="testAll"></div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,75 +0,0 @@
|
||||
/*jsl:ignoreall*/
|
||||
/*
|
||||
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.net/yui/license.txt
|
||||
version: 2.5.2
|
||||
|
||||
== BEGIN LICENSE ==
|
||||
|
||||
Software License Agreement (BSD License)
|
||||
|
||||
Copyright (c) 2008, Yahoo! Inc.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use of this software in source and binary forms, with or without modification, are
|
||||
permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above
|
||||
copyright notice, this list of conditions and the
|
||||
following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the
|
||||
following disclaimer in the documentation and/or other
|
||||
materials provided with the distribution.
|
||||
|
||||
* Neither the name of Yahoo! Inc. nor the names of its
|
||||
contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior
|
||||
written permission of Yahoo! Inc.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
== END LICENSE ==
|
||||
*/
|
||||
|
||||
/*
|
||||
This file contains the YUI Tester code as well as its dependencies, in the
|
||||
order defined at:
|
||||
http://developer.yahoo.com/yui/yuitest/
|
||||
*/
|
||||
|
||||
// yahoo-dom-event/yahoo-dom-event.js
|
||||
if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=A[C].split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules;if(!I[A]){I[A]={versions:[],builds:[]};}var B=I[A],H=D.version,G=D.build,F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(var C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var C={ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0};var B=navigator.userAgent,A;if((/KHTML/).test(B)){C.webkit=1;}A=B.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){C.webkit=parseFloat(A[1]);if(/ Mobile\//.test(B)){C.mobile="Apple";}else{A=B.match(/NokiaN[^\/]*/);if(A){C.mobile=A[0];}}A=B.match(/AdobeAIR\/([^\s]*)/);if(A){C.air=A[0];}}if(!C.webkit){A=B.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=parseFloat(A[1]);A=B.match(/Opera Mini[^;]*/);if(A){C.mobile=A[0];}}else{A=B.match(/MSIE\s([^;]*)/);if(A&&A[1]){C.ie=parseFloat(A[1]);}else{A=B.match(/Gecko\/([^\s]*)/);if(A){C.gecko=1;A=B.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=parseFloat(A[1]);}}}}}return C;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C=C+1){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{};(function(){var A=YAHOO.lang,C=["toString","valueOf"],B={isArray:function(D){if(D){return A.isNumber(D.length)&&A.isFunction(D.splice);}return false;},isBoolean:function(D){return typeof D==="boolean";},isFunction:function(D){return typeof D==="function";},isNull:function(D){return D===null;},isNumber:function(D){return typeof D==="number"&&isFinite(D);},isObject:function(D){return(D&&(typeof D==="object"||A.isFunction(D)))||false;},isString:function(D){return typeof D==="string";},isUndefined:function(D){return typeof D==="undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(F,E){for(var D=0;D<C.length;D=D+1){var H=C[D],G=E[H];if(A.isFunction(G)&&G!=Object.prototype[H]){F[H]=G;}}}:function(){},extend:function(H,I,G){if(!I||!H){throw new Error("extend failed, please check that "+"all dependencies are included.");}var E=function(){};E.prototype=I.prototype;H.prototype=new E();H.prototype.constructor=H;H.superclass=I.prototype;if(I.prototype.constructor==Object.prototype.constructor){I.prototype.constructor=I;}if(G){for(var D in G){if(A.hasOwnProperty(G,D)){H.prototype[D]=G[D];}}A._IEEnumFix(H.prototype,G);}},augmentObject:function(H,G){if(!G||!H){throw new Error("Absorb failed, verify dependencies.");}var D=arguments,F,I,E=D[2];if(E&&E!==true){for(F=2;F<D.length;F=F+1){H[D[F]]=G[D[F]];}}else{for(I in G){if(E||!(I in H)){H[I]=G[I];}}A._IEEnumFix(H,G);}},augmentProto:function(G,F){if(!F||!G){throw new Error("Augment failed, verify dependencies.");}var D=[G.prototype,F.prototype];for(var E=2;E<arguments.length;E=E+1){D.push(arguments[E]);}A.augmentObject.apply(this,D);},dump:function(D,I){var F,H,K=[],L="{...}",E="f(){...}",J=", ",G=" => ";if(!A.isObject(D)){return D+"";}else{if(D instanceof Date||("nodeType" in D&&"tagName" in D)){return D;}else{if(A.isFunction(D)){return E;}}}I=(A.isNumber(I))?I:3;if(A.isArray(D)){K.push("[");for(F=0,H=D.length;F<H;F=F+1){if(A.isObject(D[F])){K.push((I>0)?A.dump(D[F],I-1):L);}else{K.push(D[F]);}K.push(J);}if(K.length>1){K.pop();}K.push("]");}else{K.push("{");for(F in D){if(A.hasOwnProperty(D,F)){K.push(F+G);if(A.isObject(D[F])){K.push((I>0)?A.dump(D[F],I-1):L);}else{K.push(D[F]);}K.push(J);}}if(K.length>1){K.pop();}K.push("}");}return K.join("");},substitute:function(S,E,L){var I,H,G,O,P,R,N=[],F,J="dump",M=" ",D="{",Q="}";for(;;){I=S.lastIndexOf(D);if(I<0){break;}H=S.indexOf(Q,I);if(I+1>=H){break;}F=S.substring(I+1,H);O=F;R=null;G=O.indexOf(M);if(G>-1){R=O.substring(G+1);O=O.substring(0,G);}P=E[O];if(L){P=L(O,P,R);}if(A.isObject(P)){if(A.isArray(P)){P=A.dump(P,parseInt(R,10));}else{R=R||"";var K=R.indexOf(J);if(K>-1){R=R.substring(4);}if(P.toString===Object.prototype.toString||K>-1){P=A.dump(P,parseInt(R,10));}else{P=P.toString();}}}else{if(!A.isString(P)&&!A.isNumber(P)){P="~-"+N.length+"-~";N[N.length]=F;}}S=S.substring(0,I)+P+S.substring(H+1);}for(I=N.length-1;I>=0;I=I-1){S=S.replace(new RegExp("~-"+I+"-~"),"{"+N[I]+"}","g");}return S;},trim:function(D){try{return D.replace(/^\s+|\s+$/g,"");}catch(E){return D;}},merge:function(){var G={},E=arguments;for(var F=0,D=E.length;F<D;F=F+1){A.augmentObject(G,E[F],true);}return G;},later:function(K,E,L,G,H){K=K||0;E=E||{};var F=L,J=G,I,D;if(A.isString(L)){F=E[L];}if(!F){throwLine truncated
|
||||
};var O=function(S,T,V){var U=V||"utf-8";return J("script",{"id":"yui__dyn_"+(Q++),"type":"text/javascript","charset":U,"src":S},T);};var A=function(S,T){return{tId:S.tId,win:S.win,data:S.data,nodes:S.nodes,msg:T,purge:function(){D(this.tId);}};};var B=function(S,V){var T=M[V],U=(R.isString(S))?T.win.document.getElementById(S):S;if(!U){P(V,"target node not found: "+S);}return U;};var P=function(V,U){var S=M[V];if(S.onFailure){var T=S.scope||S.win;S.onFailure.call(T,A(S,U));}};var C=function(V){var S=M[V];S.finished=true;if(S.aborted){var U="transaction "+V+" was aborted";P(V,U);return ;}if(S.onSuccess){var T=S.scope||S.win;S.onSuccess.call(T,A(S));}};var G=function(U,Y){var T=M[U];if(T.aborted){var W="transaction "+U+" was aborted";P(U,W);return ;}if(Y){T.url.shift();if(T.varName){T.varName.shift();}}else{T.url=(R.isString(T.url))?[T.url]:T.url;if(T.varName){T.varName=(R.isString(T.varName))?[T.varName]:T.varName;}}var b=T.win,a=b.document,Z=a.getElementsByTagName("head")[0],V;if(T.url.length===0){if(T.type==="script"&&N.webkit&&N.webkit<420&&!T.finalpass&&!T.varName){var X=O(null,T.win,T.charset);X.innerHTML='YAHOO.util.Get._finalize("'+U+'");';T.nodes.push(X);Z.appendChild(X);}else{C(U);}return ;}var S=T.url[0];if(T.type==="script"){V=O(S,b,T.charset);}else{V=H(S,b,T.charset);}F(T.type,V,U,S,b,T.url.length);T.nodes.push(V);if(T.insertBefore){var c=B(T.insertBefore,U);if(c){c.parentNode.insertBefore(V,c);}}else{Z.appendChild(V);}if((N.webkit||N.gecko)&&T.type==="css"){G(U,S);}};var K=function(){if(E){return ;}E=true;for(var S in M){var T=M[S];if(T.autopurge&&T.finished){D(T.tId);delete M[S];}}E=false;};var D=function(Z){var W=M[Z];if(W){var Y=W.nodes,S=Y.length,X=W.win.document,V=X.getElementsByTagName("head")[0];if(W.insertBefore){var U=B(W.insertBefore,Z);if(U){V=U.parentNode;}}for(var T=0;T<S;T=T+1){V.removeChild(Y[T]);}}W.nodes=[];};var I=function(T,S,U){var W="q"+(L++);U=U||{};if(L%YAHOO.util.Get.PURGE_THRESH===0){K();}M[W]=R.merge(U,{tId:W,type:T,url:S,finished:false,nodes:[]});var V=M[W];V.win=V.win||window;V.scope=V.scope||V.win;V.autopurge=("autopurge" in V)?V.autopurge:(T==="script")?true:false;R.later(0,V,G,W);return{tId:W};};var F=function(b,W,V,T,X,Y,a){var Z=a||G;if(N.ie){W.onreadystatechange=function(){var c=this.readyState;if("loaded"===c||"complete"===c){Z(V,T);}};}else{if(N.webkit){if(b==="script"){if(N.webkit>=420){W.addEventListener("load",function(){Z(V,T);});}else{var S=M[V];if(S.varName){var U=YAHOO.util.Get.POLL_FREQ;S.maxattempts=YAHOO.util.Get.TIMEOUT/U;S.attempts=0;S._cache=S.varName[0].split(".");S.timer=R.later(U,S,function(h){var e=this._cache,d=e.length,c=this.win,f;for(f=0;f<d;f=f+1){c=c[e[f]];if(!c){this.attempts++;if(this.attempts++>this.maxattempts){var g="Over retry limit, giving up";S.timer.cancel();P(V,g);}else{}return ;}}S.timer.cancel();Z(V,T);},null,true);}else{R.later(YAHOO.util.Get.POLL_FREQ,null,Z,[V,T]);}}}}else{W.onload=function(){Z(V,T);};}}};return{POLL_FREQ:10,PURGE_THRESH:20,TIMEOUT:2000,_finalize:function(S){R.later(0,null,C,S);},abort:function(T){var U=(R.isString(T))?T:T.tId;var S=M[U];if(S){S.aborted=true;}},script:function(S,T){return I("script",S,T);},css:function(S,T){return I("css",S,T);}};}();YAHOO.register("get",YAHOO.util.Get,{version:"2.5.2",build:"1076"});(function(){var Y=YAHOO,util=Y.util,lang=Y.lang,env=Y.env,PROV="_provides",SUPER="_supersedes",REQ="expanded",AFTER="_after";var YUI={dupsAllowed:{"yahoo":true,"get":true},info:{"base":"http://yui.yahooapis.com/2.5.2/build/","skin":{"defaultSkin":"sam","base":"assets/skins/","path":"skin.css","after":["reset","fonts","grids","base"],"rollup":3},dupsAllowed:["yahoo","get"],"moduleInfo":{"animation":{"type":"js","path":"animation/animation-min.js","requires":["dom","event"]},"autocomplete":{"type":"js","path":"autocomplete/autocomplete-min.js","requires":["dom","event"],"optional":["connection","animation"],"skinnable":true},"base":{"type":"css","path":"base/base-min.css","after":["reset","fonts","grids"]},"button":{"type":"js","path":"button/button-min.js","requires":["element"],"optional":["menu"],"skinnable":true},"calendar":{"type":"js","path":"calendar/calendar-min.js","requires":["event","dom"],"skinnable":true},"charts":{"type":"js","path":"charts/charts-experimental-min.js","requires":["element","json","datasource"]},"colorpicker":{"type":"js","path":"colorpicker/colorpicker-min.js","requires":["slider","element"],"optional":["animation"],"skinnable":true},"connection":{"type":"js","path":"connection/connection-min.js","requires":["event"]},"container":{"type":"js","path":"container/container-min.js","requires":["dom","event"],"optional":["dragdrop","animation","connection"],"supersedes":["containercore"],"skinnable":true},"containercore":{"type":"js","path":"container/container_core-min.js","requires":["dom","event"],"pkg":"container"},"cookie":{"type":"js","path":"cookie/cookie-beta-min.js","requires":["yahoo"]},"datasource":{"type":"js","path":"datasource/datasource-beta-min.js","reqLine truncated
|
||||
i<a.length;i=i+1){o[a[i]]=true;}}},keys:function(o,ordered){var a=[],i;for(i in o){if(lang.hasOwnProperty(o,i)){a.push(i);}}return a;}},ArrayUtil:{appendArray:function(a1,a2){Array.prototype.push.apply(a1,a2);},indexOf:function(a,val){for(var i=0;i<a.length;i=i+1){if(a[i]===val){return i;}}return -1;},toObject:function(a){var o={};for(var i=0;i<a.length;i=i+1){o[a[i]]=true;}return o;},uniq:function(a){return YUI.ObjectUtil.keys(YUI.ArrayUtil.toObject(a));}}};YAHOO.util.YUILoader=function(o){this._internalCallback=null;this._useYahooListener=false;this.onSuccess=null;this.onFailure=Y.log;this.onProgress=null;this.scope=this;this.data=null;this.insertBefore=null;this.charset=null;this.varName=null;this.base=YUI.info.base;this.ignore=null;this.force=null;this.allowRollup=true;this.filter=null;this.required={};this.moduleInfo=lang.merge(YUI.info.moduleInfo);this.rollups=null;this.loadOptional=false;this.sorted=[];this.loaded={};this.dirty=true;this.inserted={};var self=this;env.listeners.push(function(m){if(self._useYahooListener){self.loadNext(m.name);}});this.skin=lang.merge(YUI.info.skin);this._config(o);};Y.util.YUILoader.prototype={FILTERS:{RAW:{"searchExp":"-min\\.js","replaceStr":".js"},DEBUG:{"searchExp":"-min\\.js","replaceStr":"-debug.js"}},SKIN_PREFIX:"skin-",_config:function(o){if(o){for(var i in o){if(lang.hasOwnProperty(o,i)){if(i=="require"){this.require(o[i]);}else{this[i]=o[i];}}}}var f=this.filter;if(lang.isString(f)){f=f.toUpperCase();if(f==="DEBUG"){this.require("logger");}if(!Y.widget.LogWriter){Y.widget.LogWriter=function(){return Y;};}this.filter=this.FILTERS[f];}},addModule:function(o){if(!o||!o.name||!o.type||(!o.path&&!o.fullpath)){return false;}o.ext=("ext" in o)?o.ext:true;o.requires=o.requires||[];this.moduleInfo[o.name]=o;this.dirty=true;return true;},require:function(what){var a=(typeof what==="string")?arguments:what;this.dirty=true;YUI.ObjectUtil.appendArray(this.required,a);},_addSkin:function(skin,mod){var name=this.formatSkin(skin),info=this.moduleInfo,sinf=this.skin,ext=info[mod]&&info[mod].ext;if(!info[name]){this.addModule({"name":name,"type":"css","path":sinf.base+skin+"/"+sinf.path,"after":sinf.after,"rollup":sinf.rollup,"ext":ext});}if(mod){name=this.formatSkin(skin,mod);if(!info[name]){var mdef=info[mod],pkg=mdef.pkg||mod;this.addModule({"name":name,"type":"css","after":sinf.after,"path":pkg+"/"+sinf.base+skin+"/"+mod+".css","ext":ext});}}return name;},getRequires:function(mod){if(!mod){return[];}if(!this.dirty&&mod.expanded){return mod.expanded;}mod.requires=mod.requires||[];var i,d=[],r=mod.requires,o=mod.optional,info=this.moduleInfo,m;for(i=0;i<r.length;i=i+1){d.push(r[i]);m=info[r[i]];YUI.ArrayUtil.appendArray(d,this.getRequires(m));}if(o&&this.loadOptional){for(i=0;i<o.length;i=i+1){d.push(o[i]);YUI.ArrayUtil.appendArray(d,this.getRequires(info[o[i]]));}}mod.expanded=YUI.ArrayUtil.uniq(d);return mod.expanded;},getProvides:function(name,notMe){var addMe=!(notMe),ckey=(addMe)?PROV:SUPER,m=this.moduleInfo[name],o={};if(!m){return o;}if(m[ckey]){return m[ckey];}var s=m.supersedes,done={},me=this;var add=function(mm){if(!done[mm]){done[mm]=true;lang.augmentObject(o,me.getProvides(mm));}};if(s){for(var i=0;i<s.length;i=i+1){add(s[i]);}}m[SUPER]=o;m[PROV]=lang.merge(o);m[PROV][name]=true;return m[ckey];},calculate:function(o){if(this.dirty){this._config(o);this._setup();this._explode();if(this.allowRollup){this._rollup();}this._reduce();this._sort();this.dirty=false;}},_setup:function(){var info=this.moduleInfo,name,i,j;for(name in info){var m=info[name];if(m&&m.skinnable){var o=this.skin.overrides,smod;if(o&&o[name]){for(i=0;i<o[name].length;i=i+1){smod=this._addSkin(o[name][i],name);}}else{smod=this._addSkin(this.skin.defaultSkin,name);}m.requires.push(smod);}}var l=lang.merge(this.inserted);if(!this._sandbox){l=lang.merge(l,env.modules);}if(this.ignore){YUI.ObjectUtil.appendArray(l,this.ignore);}if(this.force){for(i=0;i<this.force.length;i=i+1){if(this.force[i] in l){delete l[this.force[i]];}}}for(j in l){if(lang.hasOwnProperty(l,j)){lang.augmentObject(l,this.getProvides(j));}}this.loaded=l;},_explode:function(){var r=this.required,i,mod;for(i in r){mod=this.moduleInfo[i];if(mod){var req=this.getRequires(mod);if(req){YUI.ObjectUtil.appendArray(r,req);}}}},_skin:function(){},formatSkin:function(skin,mod){var s=this.SKIN_PREFIX+skin;if(mod){s=s+"-"+mod;}return s;},parseSkin:function(mod){if(mod.indexOf(this.SKIN_PREFIX)===0){var a=mod.split("-");return{skin:a[1],module:a[2]};}return null;},_rollup:function(){var i,j,m,s,rollups={},r=this.required,roll;if(this.dirty||!this.rollups){for(i in this.moduleInfo){m=this.moduleInfo[i];if(m&&m.rollup){rollups[i]=m;}}this.rollups=rollups;}for(;;){var rolled=false;for(i in rollups){if(!r[i]&&!this.loaded[i]){m=this.moduleInfo[i];s=m.supersedes;roll=false;if(!m.rollup){continue;}var skin=(m.ext)?false:this.parseSkin(i),c=0;if(skin){for(j in r){if(i!==j&&this.parseSkin(j)){c++;roll=(c>=m.rollup);if(roll){break;}}}}else{for(j=0;j<sLine truncated
|
||||
}if(checkOptional&&optional&&YUI.ArrayUtil.indexOf(optional,bb)>-1){return true;}var ss=info[bb]&&info[bb].supersedes;if(ss){for(ii=0;ii<ss.length;ii=ii+1){if(requires(aa,ss[ii])){return true;}}}if(mm.ext&&mm.type=="css"&&(!other.ext)){return true;}return false;};for(var i in this.required){s.push(i);}var p=0;for(;;){var l=s.length,a,b,j,k,moved=false;for(j=p;j<l;j=j+1){a=s[j];for(k=j+1;k<l;k=k+1){if(requires(a,s[k])){b=s.splice(k,1);s.splice(j,0,b[0]);moved=true;break;}}if(moved){break;}else{p=p+1;}}if(!moved){break;}}this.sorted=s;},toString:function(){var o={type:"YUILoader",base:this.base,filter:this.filter,required:this.required,loaded:this.loaded,inserted:this.inserted};lang.dump(o,1);},insert:function(o,type){this.calculate(o);if(!type){var self=this;this._internalCallback=function(){self._internalCallback=null;self.insert(null,"js");};this.insert(null,"css");return ;}this._loading=true;this.loadType=type;this.loadNext();},sandbox:function(o,type){if(o){}else{}this._config(o);if(!this.onSuccess){throw new Error("You must supply an onSuccess handler for your sandbox");}this._sandbox=true;var self=this;if(!type||type!=="js"){this._internalCallback=function(){self._internalCallback=null;self.sandbox(null,"js");};this.insert(null,"css");return ;}if(!util.Connect){var ld=new YAHOO.util.YUILoader();ld.insert({base:this.base,filter:this.filter,require:"connection",insertBefore:this.insertBefore,charset:this.charset,onSuccess:function(){this.sandbox(null,"js");},scope:this},"js");return ;}this._scriptText=[];this._loadCount=0;this._stopCount=this.sorted.length;this._xhr=[];this.calculate();var s=this.sorted,l=s.length,i,m,url;for(i=0;i<l;i=i+1){m=this.moduleInfo[s[i]];if(!m){this.onFailure.call(this.scope,{msg:"undefined module "+m,data:this.data});for(var j=0;j<this._xhr.length;j=j+1){this._xhr[j].abort();}return ;}if(m.type!=="js"){this._loadCount++;continue;}url=m.fullpath||this._url(m.path);var xhrData={success:function(o){var idx=o.argument[0],name=o.argument[2];this._scriptText[idx]=o.responseText;if(this.onProgress){this.onProgress.call(this.scope,{name:name,scriptText:o.responseText,xhrResponse:o,data:this.data});}this._loadCount++;if(this._loadCount>=this._stopCount){var v=this.varName||"YAHOO";var t="(function() {\n";var b="\nreturn "+v+";\n})();";var ref=eval(t+this._scriptText.join("\n")+b);this._pushEvents(ref);if(ref){this.onSuccess.call(this.scope,{reference:ref,data:this.data});}else{this.onFailure.call(this.scope,{msg:this.varName+" reference failure",data:this.data});}}},failure:function(o){this.onFailure.call(this.scope,{msg:"XHR failure",xhrResponse:o,data:this.data});},scope:this,argument:[i,url,s[i]]};this._xhr.push(util.Connect.asyncRequest("GET",url,xhrData));}},loadNext:function(mname){if(!this._loading){return ;}if(mname){if(mname!==this._loading){return ;}this.inserted[mname]=true;if(this.onProgress){this.onProgress.call(this.scope,{name:mname,data:this.data});}}var s=this.sorted,len=s.length,i,m;for(i=0;i<len;i=i+1){if(s[i] in this.inserted){continue;}if(s[i]===this._loading){return ;}m=this.moduleInfo[s[i]];if(!m){this.onFailure.call(this.scope,{msg:"undefined module "+m,data:this.data});return ;}if(!this.loadType||this.loadType===m.type){this._loading=s[i];var fn=(m.type==="css")?util.Get.css:util.Get.script,url=m.fullpath||this._url(m.path),self=this,c=function(o){self.loadNext(o.data);};if(env.ua.webkit&&env.ua.webkit<420&&m.type==="js"&&!m.varName){c=null;this._useYahooListener=true;}fn(url,{data:s[i],onSuccess:c,insertBefore:this.insertBefore,charset:this.charset,varName:m.varName,scope:self});return ;}}this._loading=null;if(this._internalCallback){var f=this._internalCallback;this._internalCallback=null;f.call(this);}else{if(this.onSuccess){this._pushEvents();this.onSuccess.call(this.scope,{data:this.data});}}},_pushEvents:function(ref){var r=ref||YAHOO;if(r.util&&r.util.Event){r.util.Event._load();}},_url:function(path){var u=this.base||"",f=this.filter;u=u+path;if(f){u=u.replace(new RegExp(f.searchExp),f.replaceStr);}return u;}};})();(function(){var B=YAHOO.util,K,I,J={},F={},M=window.document;YAHOO.env._id_counter=YAHOO.env._id_counter||0;var C=YAHOO.env.ua.opera,L=YAHOO.env.ua.webkit,A=YAHOO.env.ua.gecko,G=YAHOO.env.ua.ie;var E={HYPHEN:/(-[a-z])/i,ROOT_TAG:/^body|html$/i,OP_SCROLL:/^(?:inline|table-row)$/i};var N=function(P){if(!E.HYPHEN.test(P)){return P;}if(J[P]){return J[P];}var Q=P;while(E.HYPHEN.exec(Q)){Q=Q.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());}J[P]=Q;return Q;};var O=function(Q){var P=F[Q];if(!P){P=new RegExp("(?:^|\\s+)"+Q+"(?:\\s+|$)");F[Q]=P;}return P;};if(M.defaultView&&M.defaultView.getComputedStyle){K=function(P,S){var R=null;if(S=="float"){S="cssFloat";}var Q=P.ownerDocument.defaultView.getComputedStyle(P,"");if(Q){R=Q[N(S)];}return P.style[S]||R;};}else{if(M.documentElement.currentStyle&&G){K=function(P,R){switch(N(R)){case"opacity":var T=100;try{T=P.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(S){try{T=P.filters("alpha").opLine truncated
|
||||
var Q=M.compatMode;if((Q||G)&&!C){P=(Q=="CSS1Compat")?M.documentElement.clientHeight:M.body.clientHeight;}return P;},getViewportWidth:function(){var P=self.innerWidth;var Q=M.compatMode;if(Q||G){P=(Q=="CSS1Compat")?M.documentElement.clientWidth:M.body.clientWidth;}return P;},getAncestorBy:function(P,Q){while(P=P.parentNode){if(D(P,Q)){return P;}}return null;},getAncestorByClassName:function(Q,P){Q=B.Dom.get(Q);if(!Q){return null;}var R=function(S){return B.Dom.hasClass(S,P);};return B.Dom.getAncestorBy(Q,R);},getAncestorByTagName:function(Q,P){Q=B.Dom.get(Q);if(!Q){return null;}var R=function(S){return S.tagName&&S.tagName.toUpperCase()==P.toUpperCase();};return B.Dom.getAncestorBy(Q,R);},getPreviousSiblingBy:function(P,Q){while(P){P=P.previousSibling;if(D(P,Q)){return P;}}return null;},getPreviousSibling:function(P){P=B.Dom.get(P);if(!P){return null;}return B.Dom.getPreviousSiblingBy(P);},getNextSiblingBy:function(P,Q){while(P){P=P.nextSibling;if(D(P,Q)){return P;}}return null;},getNextSibling:function(P){P=B.Dom.get(P);if(!P){return null;}return B.Dom.getNextSiblingBy(P);},getFirstChildBy:function(P,R){var Q=(D(P.firstChild,R))?P.firstChild:null;return Q||B.Dom.getNextSiblingBy(P.firstChild,R);},getFirstChild:function(P,Q){P=B.Dom.get(P);if(!P){return null;}return B.Dom.getFirstChildBy(P);},getLastChildBy:function(P,R){if(!P){return null;}var Q=(D(P.lastChild,R))?P.lastChild:null;return Q||B.Dom.getPreviousSiblingBy(P.lastChild,R);},getLastChild:function(P){P=B.Dom.get(P);return B.Dom.getLastChildBy(P);},getChildrenBy:function(Q,S){var R=B.Dom.getFirstChildBy(Q,S);var P=R?[R]:[];B.Dom.getNextSiblingBy(R,function(T){if(!S||S(T)){P[P.length]=T;}return false;});return P;},getChildren:function(P){P=B.Dom.get(P);if(!P){}return B.Dom.getChildrenBy(P);},getDocumentScrollLeft:function(P){P=P||M;return Math.max(P.documentElement.scrollLeft,P.body.scrollLeft);},getDocumentScrollTop:function(P){P=P||M;return Math.max(P.documentElement.scrollTop,P.body.scrollTop);},insertBefore:function(Q,P){Q=B.Dom.get(Q);P=B.Dom.get(P);if(!Q||!P||!P.parentNode){return null;}return P.parentNode.insertBefore(Q,P);},insertAfter:function(Q,P){Q=B.Dom.get(Q);P=B.Dom.get(P);if(!Q||!P||!P.parentNode){return null;}if(P.nextSibling){return P.parentNode.insertBefore(Q,P.nextSibling);}else{return P.parentNode.appendChild(Q);}},getClientRegion:function(){var R=B.Dom.getDocumentScrollTop(),Q=B.Dom.getDocumentScrollLeft(),S=B.Dom.getViewportWidth()+Q,P=B.Dom.getViewportHeight()+R;return new B.Region(R,S,P,Q);}};var H=function(){if(M.documentElement.getBoundingClientRect){return function(Q){var R=Q.getBoundingClientRect();var P=Q.ownerDocument;return[R.left+B.Dom.getDocumentScrollLeft(P),R.top+B.Dom.getDocumentScrollTop(P)];};}else{return function(R){var S=[R.offsetLeft,R.offsetTop];var Q=R.offsetParent;var P=(L&&B.Dom.getStyle(R,"position")=="absolute"&&R.offsetParent==R.ownerDocument.body);if(Q!=R){while(Q){S[0]+=Q.offsetLeft;S[1]+=Q.offsetTop;if(!P&&L&&B.Dom.getStyle(Q,"position")=="absolute"){P=true;}Q=Q.offsetParent;}}if(P){S[0]-=R.ownerDocument.body.offsetLeft;S[1]-=R.ownerDocument.body.offsetTop;}Q=R.parentNode;while(Q.tagName&&!E.ROOT_TAG.test(Q.tagName)){if(Q.scrollTop||Q.scrollLeft){if(!E.OP_SCROLL.test(B.Dom.getStyle(Q,"display"))){if(!C||B.Dom.getStyle(Q,"overflow")!=="visible"){S[0]-=Q.scrollLeft;S[1]-=Q.scrollTop;}}}Q=Q.parentNode;}return S;};}}();})();YAHOO.util.Region=function(C,D,A,B){this.top=C;this[1]=C;this.right=D;this.bottom=A;this.left=B;this[0]=B;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top);var D=Math.min(this.right,E.right);var A=Math.min(this.bottom,E.bottom);var B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top);var D=Math.max(this.right,E.right);var A=Math.max(this.bottom,E.bottom);var B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D);var C=F[1];var E=F[0]+D.offsetWidth;var A=F[1]+D.offsetHeight;var B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}this.x=this.right=this.left=this[0]=A;this.y=this.top=this.bottom=this[1]=B;};YAHOO.util.Point.prototype=new YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.5.2",build:"1076"});YAHOO.util.CustomEvent=function(D,B,C,A){this.type=D;this.scope=B||window;this.silent=C;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silenLine truncated
|
||||
},getXY:function(K){return[this.getPageX(K),this.getPageY(K)];},getRelatedTarget:function(L){var K=L.relatedTarget;if(!K){if(L.type=="mouseout"){K=L.toElement;}else{if(L.type=="mouseover"){K=L.fromElement;}}}return this.resolveTextNode(K);},getTime:function(M){if(!M.time){var L=new Date().getTime();try{M.time=L;}catch(K){this.lastError=K;return L;}}return M.time;},stopEvent:function(K){this.stopPropagation(K);this.preventDefault(K);},stopPropagation:function(K){if(K.stopPropagation){K.stopPropagation();}else{K.cancelBubble=true;}},preventDefault:function(K){if(K.preventDefault){K.preventDefault();}else{K.returnValue=false;}},getEvent:function(M,K){var L=M||window.event;if(!L){var N=this.getEvent.caller;while(N){L=N.arguments[0];if(L&&Event==L.constructor){break;}N=N.caller;}}return L;},getCharCode:function(L){var K=L.keyCode||L.charCode||0;if(YAHOO.env.ua.webkit&&(K in D)){K=D[K];}return K;},_getCacheIndex:function(O,P,N){for(var M=0,L=I.length;M<L;M=M+1){var K=I[M];if(K&&K[this.FN]==N&&K[this.EL]==O&&K[this.TYPE]==P){return M;}}return -1;},generateId:function(K){var L=K.id;if(!L){L="yuievtautoid-"+A;++A;K.id=L;}return L;},_isValidCollection:function(L){try{return(L&&typeof L!=="string"&&L.length&&!L.tagName&&!L.alert&&typeof L[0]!=="undefined");}catch(K){return false;}},elCache:{},getEl:function(K){return(typeof K==="string")?document.getElementById(K):K;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",this),_load:function(L){if(!H){H=true;var K=YAHOO.util.Event;K._ready();K._tryPreloadAttach();}},_ready:function(L){var K=YAHOO.util.Event;if(!K.DOMReady){K.DOMReady=true;K.DOMReadyEvent.fire();K._simpleRemove(document,"DOMContentLoaded",K._ready);}},_tryPreloadAttach:function(){if(F.length===0){C=0;clearInterval(this._interval);this._interval=null;return ;}if(this.locked){return ;}if(this.isIE){if(!this.DOMReady){this.startInterval();return ;}}this.locked=true;var Q=!H;if(!Q){Q=(C>0&&F.length>0);}var P=[];var R=function(T,U){var S=T;if(U.override){if(U.override===true){S=U.obj;}else{S=U.override;}}U.fn.call(S,U.obj);};var L,K,O,N,M=[];for(L=0,K=F.length;L<K;L=L+1){O=F[L];if(O){N=this.getEl(O.id);if(N){if(O.checkReady){if(H||N.nextSibling||!Q){M.push(O);F[L]=null;}}else{R(N,O);F[L]=null;}}else{P.push(O);}}}for(L=0,K=M.length;L<K;L=L+1){O=M[L];R(this.getEl(O.id),O);}C--;if(Q){for(L=F.length-1;L>-1;L--){O=F[L];if(!O||!O.id){F.splice(L,1);}}this.startInterval();}else{clearInterval(this._interval);this._interval=null;}this.locked=false;},purgeElement:function(O,P,R){var M=(YAHOO.lang.isString(O))?this.getEl(O):O;var Q=this.getListeners(M,R),N,K;if(Q){for(N=Q.length-1;N>-1;N--){var L=Q[N];this.removeListener(M,L.type,L.fn);}}if(P&&M&&M.childNodes){for(N=0,K=M.childNodes.length;N<K;++N){this.purgeElement(M.childNodes[N],P,R);}}},getListeners:function(M,K){var P=[],L;if(!K){L=[I,J];}else{if(K==="unload"){L=[J];}else{L=[I];}}var R=(YAHOO.lang.isString(M))?this.getEl(M):M;for(var O=0;O<L.length;O=O+1){var T=L[O];if(T){for(var Q=0,S=T.length;Q<S;++Q){var N=T[Q];if(N&&N[this.EL]===R&&(!K||K===N[this.TYPE])){P.push({type:N[this.TYPE],fn:N[this.FN],obj:N[this.OBJ],adjust:N[this.OVERRIDE],scope:N[this.ADJ_SCOPE],index:Q});}}}}return(P.length)?P:null;},_unload:function(Q){var K=YAHOO.util.Event,N,M,L,P,O,R=J.slice();for(N=0,P=J.length;N<P;++N){L=R[N];if(L){var S=window;if(L[K.ADJ_SCOPE]){if(L[K.ADJ_SCOPE]===true){S=L[K.UNLOAD_OBJ];}else{S=L[K.ADJ_SCOPE];}}L[K.FN].call(S,K.getEvent(Q,L[K.EL]),L[K.UNLOAD_OBJ]);R[N]=null;L=null;S=null;}}J=null;if(I){for(M=I.length-1;M>-1;M--){L=I[M];if(L){K.removeListener(L[K.EL],L[K.TYPE],L[K.FN],M);}}L=null;}G=null;K._simpleRemove(window,"unload",K._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var K=document.documentElement,L=document.body;if(K&&(K.scrollTop||K.scrollLeft)){return[K.scrollTop,K.scrollLeft];}else{if(L){return[L.scrollTop,L.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(M,N,L,K){M.addEventListener(N,L,(K));};}else{if(window.attachEvent){return function(M,N,L,K){M.attachEvent("on"+N,L);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(M,N,L,K){M.removeEventListener(N,L,(K));};}else{if(window.detachEvent){return function(L,M,K){L.detachEvent("on"+M,K);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;
|
||||
/* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller */
|
||||
if(EU.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);var n=document.createElement("p");EU._dri=setInterval(function(){try{n.doScroll("left");clearInterval(EU._dri);EU._dri=null;EU._ready();n=null;}catch(ex){}},EU.POLL_INTERVAL);}else{if(EU.webkit&&EU.webkit<525){EU._dri=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._dri);EU._dri=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,override:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=this.__yui_events||{};var A=D||{};var I=this.__yui_events;
|
||||
if(I[G]){}else{var H=A.scope||this;var E=(A.silent);var B=new YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=B;if(A.onSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var F=this.__yui_subscribers[G];if(F){for(var C=0;C<F.length;++C){B.subscribe(F[C].fn,F[C].obj,F[C].override);}}}return I[G];},fireEvent:function(E,D,A,C){this.__yui_events=this.__yui_events||{};var G=this.__yui_events[E];if(!G){return null;}var B=[];for(var F=1;F<arguments.length;++F){B.push(arguments[F]);}return G.fire.apply(G,B);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};YAHOO.util.KeyListener=function(A,F,B,C){if(!A){}else{if(!F){}else{if(!B){}}}if(!C){C=YAHOO.util.KeyListener.KEYDOWN;}var D=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(typeof A=="string"){A=document.getElementById(A);}if(typeof B=="function"){D.subscribe(B);}else{D.subscribe(B.fn,B.scope,B.correctScope);}function E(J,I){if(!F.shift){F.shift=false;}if(!F.alt){F.alt=false;}if(!F.ctrl){F.ctrl=false;}if(J.shiftKey==F.shift&&J.altKey==F.alt&&J.ctrlKey==F.ctrl){var G;if(F.keys instanceof Array){for(var H=0;H<F.keys.length;H++){G=F.keys[H];if(G==J.charCode){D.fire(J.charCode,J);break;}else{if(G==J.keyCode){D.fire(J.keyCode,J);break;}}}}else{G=F.keys;if(G==J.charCode){D.fire(J.charCode,J);}else{if(G==J.keyCode){D.fire(J.keyCode,J);}}}}}this.enable=function(){if(!this.enabled){YAHOO.util.Event.addListener(A,C,E);this.enabledEvent.fire(F);}this.enabled=true;};this.disable=function(){if(this.enabled){YAHOO.util.Event.removeListener(A,C,E);this.disabledEvent.fire(F);}this.enabled=false;};this.toString=function(){return"KeyListener ["+F.keys+"] "+A.tagName+(A.id?"["+A.id+"]":"");};};YAHOO.util.KeyListener.KEYDOWN="keydown";YAHOO.util.KeyListener.KEYUP="keyup";YAHOO.util.KeyListener.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};YAHOO.register("event",YAHOO.util.Event,{version:"2.5.2",build:"1076"});YAHOO.register("yuiloader-dom-event", YAHOO, {version: "2.5.2", build: "1076"});
|
||||
|
||||
// logger/logger-min.js
|
||||
YAHOO.widget.LogMsg=function(A){this.msg=this.time=this.category=this.source=this.sourceDetail=null;if(A&&(A.constructor==Object)){for(var B in A){this[B]=A[B];}}};YAHOO.widget.LogWriter=function(A){if(!A){YAHOO.log("Could not instantiate LogWriter due to invalid source.","error","LogWriter");return ;}this._source=A;};YAHOO.widget.LogWriter.prototype.toString=function(){return"LogWriter "+this._sSource;};YAHOO.widget.LogWriter.prototype.log=function(A,B){YAHOO.widget.Logger.log(A,B,this._source);};YAHOO.widget.LogWriter.prototype.getSource=function(){return this._sSource;};YAHOO.widget.LogWriter.prototype.setSource=function(A){if(!A){YAHOO.log("Could not set source due to invalid source.","error",this.toString());return ;}else{this._sSource=A;}};YAHOO.widget.LogWriter.prototype._source=null;YAHOO.widget.LogReader=function(B,A){this._sName=YAHOO.widget.LogReader._index;YAHOO.widget.LogReader._index++;this._buffer=[];this._filterCheckboxes={};this._lastTime=YAHOO.widget.Logger.getStartTime();if(A&&(A.constructor==Object)){for(var C in A){this[C]=A[C];}}this._initContainerEl(B);if(!this._elContainer){YAHOO.log("Could not instantiate LogReader due to an invalid container element "+B,"error",this.toString());return ;}this._initHeaderEl();this._initConsoleEl();this._initFooterEl();this._initDragDrop();this._initCategories();this._initSources();YAHOO.widget.Logger.newLogEvent.subscribe(this._onNewLog,this);YAHOO.widget.Logger.logResetEvent.subscribe(this._onReset,this);YAHOO.widget.Logger.categoryCreateEvent.subscribe(this._onCategoryCreate,this);YAHOO.widget.Logger.sourceCreateEvent.subscribe(this._onSourceCreate,this);this._filterLogs();YAHOO.log("LogReader initialized",null,this.toString());};YAHOO.lang.augmentObject(YAHOO.widget.LogReader,{_index:0,ENTRY_TEMPLATE:(function(){var A=document.createElement("pre");YAHOO.util.Dom.addClass(A,"yui-log-entry");return A;})(),VERBOSE_TEMPLATE:"<span class='{category}'>{label}</span>{totalTime}ms (+{elapsedTime}) {localTime}:</p><p>{sourceAndDetail}</p><p>{message}</p>",BASIC_TEMPLATE:"<p><span class='{category}'>{label}</span>{totalTime}ms (+{elapsedTime}) {localTime}: {sourceAndDetail}: {message}</p>"});YAHOO.widget.LogReader.prototype={logReaderEnabled:true,width:null,height:null,top:null,left:null,right:null,bottom:null,fontSize:null,footerEnabled:true,verboseOutput:true,entryFormat:null,newestOnTop:true,outputBuffer:100,thresholdMax:500,thresholdMin:100,isCollapsed:false,isPaused:false,draggable:true,toString:function(){return"LogReader instance"+this._sName;},pause:function(){this.isPaused=true;this._btnPause.value="Resume";this._timeout=null;this.logReaderEnabled=false;},resume:function(){this.isPaused=false;this._btnPause.value="Pause";this.logReaderEnabled=true;this._printBuffer();},hide:function(){this._elContainer.style.display="none";},show:function(){this._elContainer.style.display="block";},collapse:function(){this._elConsole.style.display="none";if(this._elFt){this._elFt.style.display="none";}this._btnCollapse.value="Expand";this.isCollapsed=true;},expand:function(){this._elConsole.style.display="block";if(this._elFt){this._elFt.style.display="block";}this._btnCollapse.value="Collapse";this.isCollapsed=false;},getCheckbox:function(A){return this._filterCheckboxes[A];},getCategories:function(){return this._categoryFilters;},showCategory:function(B){var D=this._categoryFilters;if(D.indexOf){if(D.indexOf(B)>-1){return ;}}else{for(var A=0;A<D.length;A++){if(D[A]===B){return ;}}}this._categoryFilters.push(B);this._filterLogs();var C=this.getCheckbox(B);if(C){C.checked=true;}},hideCategory:function(B){var D=this._categoryFilters;for(var A=0;A<D.length;A++){if(B==D[A]){D.splice(A,1);break;}}this._filterLogs();var C=this.getCheckbox(B);if(C){C.checked=false;}},getSources:function(){return this._sourceFilters;},showSource:function(A){var D=this._sourceFilters;if(D.indexOf){if(D.indexOf(A)>-1){return ;}}else{for(var B=0;B<D.length;B++){if(A==D[B]){return ;}}}D.push(A);this._filterLogs();var C=this.getCheckbox(A);if(C){C.checked=true;}},hideSource:function(A){var D=this._sourceFilters;for(var B=0;B<D.length;B++){if(A==D[B]){D.splice(B,1);break;}}this._filterLogs();var C=this.getCheckbox(A);if(C){C.checked=false;}},clearConsole:function(){this._timeout=null;this._buffer=[];this._consoleMsgCount=0;var A=this._elConsole;A.innerHTML="";},setTitle:function(A){this._title.innerHTML=this.html2Text(A);},getLastTime:function(){return this._lastTime;},formatMsg:function(C){var B=YAHOO.widget.LogReader,A=this.entryFormat||(this.verboseOutput?B.VERBOSE_TEMPLATE:B.BASIC_TEMPLATE),D={category:C.category,label:C.category.substring(0,4).toUpperCase(),sourceAndDetail:C.sourceDetail?C.source+" "+C.sourceDetail:C.source,message:this.html2Text(C.msg||C.message||"")};if(C.time&&C.time.getTime){D.localTime=C.time.toLocaleTimeString?C.time.toLocaleTimeString():C.time.toString();D.elapsedTime=C.time.getTime()-this.getLastTime();D.totalTime=C.time.getTime()-YAHOO.widget.Logger.getStartTime(Line truncated
|
||||
if(this.width){A.width=this.width;}if(this.right){A.right=this.right;}if(this.top){A.top=this.top;}if(this.left){A.left=this.left;A.right="auto";}if(this.bottom){A.bottom=this.bottom;A.top="auto";}if(this.fontSize){A.fontSize=this.fontSize;}if(navigator.userAgent.toLowerCase().indexOf("opera")!=-1){document.body.style+="";}}},_initHeaderEl:function(){var A=this;if(this._elHd){YAHOO.util.Event.purgeElement(this._elHd,true);this._elHd.innerHTML="";}this._elHd=this._elContainer.appendChild(document.createElement("div"));this._elHd.id="yui-log-hd"+this._sName;this._elHd.className="yui-log-hd";this._elCollapse=this._elHd.appendChild(document.createElement("div"));this._elCollapse.className="yui-log-btns";this._btnCollapse=document.createElement("input");this._btnCollapse.type="button";this._btnCollapse.className="yui-log-button";this._btnCollapse.value="Collapse";this._btnCollapse=this._elCollapse.appendChild(this._btnCollapse);YAHOO.util.Event.addListener(A._btnCollapse,"click",A._onClickCollapseBtn,A);this._title=this._elHd.appendChild(document.createElement("h4"));this._title.innerHTML="Logger Console";},_initConsoleEl:function(){if(this._elConsole){YAHOO.util.Event.purgeElement(this._elConsole,true);this._elConsole.innerHTML="";}this._elConsole=this._elContainer.appendChild(document.createElement("div"));this._elConsole.className="yui-log-bd";if(this.height){this._elConsole.style.height=this.height;}},_initFooterEl:function(){var A=this;if(this.footerEnabled){if(this._elFt){YAHOO.util.Event.purgeElement(this._elFt,true);this._elFt.innerHTML="";}this._elFt=this._elContainer.appendChild(document.createElement("div"));this._elFt.className="yui-log-ft";this._elBtns=this._elFt.appendChild(document.createElement("div"));this._elBtns.className="yui-log-btns";this._btnPause=document.createElement("input");this._btnPause.type="button";this._btnPause.className="yui-log-button";this._btnPause.value="Pause";this._btnPause=this._elBtns.appendChild(this._btnPause);YAHOO.util.Event.addListener(A._btnPause,"click",A._onClickPauseBtn,A);this._btnClear=document.createElement("input");this._btnClear.type="button";this._btnClear.className="yui-log-button";this._btnClear.value="Clear";this._btnClear=this._elBtns.appendChild(this._btnClear);YAHOO.util.Event.addListener(A._btnClear,"click",A._onClickClearBtn,A);this._elCategoryFilters=this._elFt.appendChild(document.createElement("div"));this._elCategoryFilters.className="yui-log-categoryfilters";this._elSourceFilters=this._elFt.appendChild(document.createElement("div"));this._elSourceFilters.className="yui-log-sourcefilters";}},_initDragDrop:function(){if(YAHOO.util.DD&&this.draggable&&this._elHd){var A=new YAHOO.util.DD(this._elContainer);A.setHandleElId(this._elHd.id);this._elHd.style.cursor="move";}},_initCategories:function(){this._categoryFilters=[];var C=YAHOO.widget.Logger.categories;for(var A=0;A<C.length;A++){var B=C[A];this._categoryFilters.push(B);if(this._elCategoryFilters){this._createCategoryCheckbox(B);}}},_initSources:function(){this._sourceFilters=[];var C=YAHOO.widget.Logger.sources;for(var B=0;B<C.length;B++){var A=C[B];this._sourceFilters.push(A);if(this._elSourceFilters){this._createSourceCheckbox(A);}}},_createCategoryCheckbox:function(B){var A=this;if(this._elFt){var E=this._elCategoryFilters;var D=E.appendChild(document.createElement("span"));D.className="yui-log-filtergrp";var C=document.createElement("input");C.id="yui-log-filter-"+B+this._sName;C.className="yui-log-filter-"+B;C.type="checkbox";C.category=B;C=D.appendChild(C);C.checked=true;YAHOO.util.Event.addListener(C,"click",A._onCheckCategory,A);var F=D.appendChild(document.createElement("label"));F.htmlFor=C.id;F.className=B;F.innerHTML=B;this._filterCheckboxes[B]=C;}},_createSourceCheckbox:function(A){var D=this;if(this._elFt){var F=this._elSourceFilters;var E=F.appendChild(document.createElement("span"));E.className="yui-log-filtergrp";var C=document.createElement("input");C.id="yui-log-filter"+A+this._sName;C.className="yui-log-filter"+A;C.type="checkbox";C.source=A;C=E.appendChild(C);C.checked=true;YAHOO.util.Event.addListener(C,"click",D._onCheckSource,D);var B=E.appendChild(document.createElement("label"));B.htmlFor=C.id;B.className=A;B.innerHTML=A;this._filterCheckboxes[A]=C;}},_filterLogs:function(){if(this._elConsole!==null){this.clearConsole();this._printToConsole(YAHOO.widget.Logger.getStack());}},_printBuffer:function(){this._timeout=null;if(this._elConsole!==null){var B=this.thresholdMax;B=(B&&!isNaN(B))?B:500;if(this._consoleMsgCount<B){var A=[];for(var C=0;C<this._buffer.length;C++){A[C]=this._buffer[C];}this._buffer=[];this._printToConsole(A);}else{this._filterLogs();}if(!this.newestOnTop){this._elConsole.scrollTop=this._elConsole.scrollHeight;}}},_printToConsole:function(I){var B=I.length,M=document.createDocumentFragment(),P=[],Q=this.thresholdMin,C=this._sourceFilters.length,N=this._categoryFilters.length,K,H,G,F,L;if(isNaN(Q)||(Q>this.thresholdMax)){Q=0;}K=(B>Q)?(B-Q):0;for(H=KLine truncated
|
||||
if(!this.checked){B.hideSource(C);}else{B.showSource(C);}},_onClickCollapseBtn:function(A,B){if(!B.isCollapsed){B.collapse();}else{B.expand();}},_onClickPauseBtn:function(A,B){if(!B.isPaused){B.pause();}else{B.resume();}},_onClickClearBtn:function(A,B){B.clearConsole();},_onNewLog:function(D,C,A){var B=C[0];A._buffer.push(B);if(A.logReaderEnabled===true&&A._timeout===null){A._timeout=setTimeout(function(){A._printBuffer();},A.outputBuffer);}},_onReset:function(C,B,A){A._filterLogs();}};if(!YAHOO.widget.Logger){YAHOO.widget.Logger={loggerEnabled:true,_browserConsoleEnabled:false,categories:["info","warn","error","time","window"],sources:["global"],_stack:[],maxStackEntries:2500,_startTime:new Date().getTime(),_lastTime:null,_windowErrorsHandled:false,_origOnWindowError:null};YAHOO.widget.Logger.log=function(B,F,G){if(this.loggerEnabled){if(!F){F="info";}else{F=F.toLocaleLowerCase();if(this._isNewCategory(F)){this._createNewCategory(F);}}var C="global";var A=null;if(G){var D=G.indexOf(" ");if(D>0){C=G.substring(0,D);A=G.substring(D,G.length);}else{C=G;}if(this._isNewSource(C)){this._createNewSource(C);}}var H=new Date();var J=new YAHOO.widget.LogMsg({msg:B,time:H,category:F,source:C,sourceDetail:A});var I=this._stack;var E=this.maxStackEntries;if(E&&!isNaN(E)&&(I.length>=E)){I.shift();}I.push(J);this.newLogEvent.fire(J);if(this._browserConsoleEnabled){this._printToBrowserConsole(J);}return true;}else{return false;}};YAHOO.widget.Logger.reset=function(){this._stack=[];this._startTime=new Date().getTime();this.loggerEnabled=true;this.log("Logger reset");this.logResetEvent.fire();};YAHOO.widget.Logger.getStack=function(){return this._stack;};YAHOO.widget.Logger.getStartTime=function(){return this._startTime;};YAHOO.widget.Logger.disableBrowserConsole=function(){YAHOO.log("Logger output to the function console.log() has been disabled.");this._browserConsoleEnabled=false;};YAHOO.widget.Logger.enableBrowserConsole=function(){this._browserConsoleEnabled=true;YAHOO.log("Logger output to the function console.log() has been enabled.");};YAHOO.widget.Logger.handleWindowErrors=function(){if(!YAHOO.widget.Logger._windowErrorsHandled){if(window.error){YAHOO.widget.Logger._origOnWindowError=window.onerror;}window.onerror=YAHOO.widget.Logger._onWindowError;YAHOO.widget.Logger._windowErrorsHandled=true;YAHOO.log("Logger handling of window.onerror has been enabled.");}else{YAHOO.log("Logger handling of window.onerror had already been enabled.");}};YAHOO.widget.Logger.unhandleWindowErrors=function(){if(YAHOO.widget.Logger._windowErrorsHandled){if(YAHOO.widget.Logger._origOnWindowError){window.onerror=YAHOO.widget.Logger._origOnWindowError;YAHOO.widget.Logger._origOnWindowError=null;}else{window.onerror=null;}YAHOO.widget.Logger._windowErrorsHandled=false;YAHOO.log("Logger handling of window.onerror has been disabled.");}else{YAHOO.log("Logger handling of window.onerror had already been disabled.");}};YAHOO.widget.Logger.categoryCreateEvent=new YAHOO.util.CustomEvent("categoryCreate",this,true);YAHOO.widget.Logger.sourceCreateEvent=new YAHOO.util.CustomEvent("sourceCreate",this,true);YAHOO.widget.Logger.newLogEvent=new YAHOO.util.CustomEvent("newLog",this,true);YAHOO.widget.Logger.logResetEvent=new YAHOO.util.CustomEvent("logReset",this,true);YAHOO.widget.Logger._createNewCategory=function(A){this.categories.push(A);this.categoryCreateEvent.fire(A);};YAHOO.widget.Logger._isNewCategory=function(B){for(var A=0;A<this.categories.length;A++){if(B==this.categories[A]){return false;}}return true;};YAHOO.widget.Logger._createNewSource=function(A){this.sources.push(A);this.sourceCreateEvent.fire(A);};YAHOO.widget.Logger._isNewSource=function(A){if(A){for(var B=0;B<this.sources.length;B++){if(A==this.sources[B]){return false;}}return true;}};YAHOO.widget.Logger._printToBrowserConsole=function(C){if(window.console&&console.log){var E=C.category;var D=C.category.substring(0,4).toUpperCase();var G=C.time;var F;if(G.toLocaleTimeString){F=G.toLocaleTimeString();}else{F=G.toString();}var H=G.getTime();var B=(YAHOO.widget.Logger._lastTime)?(H-YAHOO.widget.Logger._lastTime):0;YAHOO.widget.Logger._lastTime=H;var A=F+" ("+B+"ms): "+C.source+": ";console.log(A,C.msg);}};YAHOO.widget.Logger._onWindowError=function(A,C,B){try{YAHOO.widget.Logger.log(A+" ("+C+", line "+B+")","window");if(YAHOO.widget.Logger._origOnWindowError){YAHOO.widget.Logger._origOnWindowError();}}catch(D){return false;}};YAHOO.widget.Logger.log("Logger initialized");}YAHOO.register("logger",YAHOO.widget.Logger,{version:"2.5.2",build:"1076"});
|
||||
|
||||
//selector/selector-min.js
|
||||
(function(){var A=YAHOO.util;A.Selector={_foundCache:[],_regexCache:{},_re:{nth:/^(?:([-]?\d*)(n){1}|(odd|even)$)*([-+]?\d*)$/,attr:/(\[.*\])/g,urls:/^(?:href|src)/},document:window.document,attrAliases:{},shorthand:{"\\#(-?[_a-z]+[-\\w]*)":"[id=$1]","\\.(-?[_a-z]+[-\\w]*)":"[class~=$1]"},operators:{"=":function(B,C){return B===C;},"!=":function(B,C){return B!==C;},"~=":function(B,D){var C=" ";return(C+B+C).indexOf((C+D+C))>-1;},"|=":function(B,C){return B===C||B.slice(0,C.length+1)===C+"-";},"^=":function(B,C){return B.indexOf(C)===0;},"$=":function(B,C){return B.slice(-C.length)===C;},"*=":function(B,C){return B.indexOf(C)>-1;},"":function(B,C){return B;}},pseudos:{"root":function(B){return B===B.ownerDocument.documentElement;},"nth-child":function(B,C){return A.Selector._getNth(B,C);},"nth-last-child":function(B,C){return A.Selector._getNth(B,C,null,true);},"nth-of-type":function(B,C){return A.Selector._getNth(B,C,B.tagName);},"nth-last-of-type":function(B,C){return A.Selector._getNth(B,C,B.tagName,true);},"first-child":function(B){return A.Selector._getChildren(B.parentNode)[0]===B;},"last-child":function(C){var B=A.Selector._getChildren(C.parentNode);return B[B.length-1]===C;},"first-of-type":function(B,C){return A.Selector._getChildren(B.parentNode,B.tagName)[0];},"last-of-type":function(C,D){var B=A.Selector._getChildren(C.parentNode,C.tagName);return B[B.length-1];},"only-child":function(C){var B=A.Selector._getChildren(C.parentNode);return B.length===1&&B[0]===C;},"only-of-type":function(B){return A.Selector._getChildren(B.parentNode,B.tagName).length===1;},"empty":function(B){return B.childNodes.length===0;},"not":function(B,C){return !A.Selector.test(B,C);},"contains":function(B,D){var C=B.innerText||B.textContent||"";return C.indexOf(D)>-1;},"checked":function(B){return B.checked===true;}},test:function(F,D){F=A.Selector.document.getElementById(F)||F;if(!F){return false;}var C=D?D.split(","):[];if(C.length){for(var E=0,B=C.length;E<B;++E){if(A.Selector._test(F,C[E])){return true;}}return false;}return A.Selector._test(F,D);},_test:function(D,G,F,E){F=F||A.Selector._tokenize(G).pop()||{};if(!D.tagName||(F.tag!=="*"&&D.tagName!==F.tag)||(E&&D._found)){return false;}if(F.attributes.length){var B,H,C=A.Selector._re.urls;if(!D.attributes||!D.attributes.length){return false;}for(var I=0,K;K=F.attributes[I++];){H=(C.test(K[0]))?2:0;B=D.getAttribute(K[0],H);if(B===null||B===undefined){return false;}if(A.Selector.operators[K[1]]&&!A.Selector.operators[K[1]](B,K[2])){return false;}}}if(F.pseudos.length){for(var I=0,J=F.pseudos.length;I<J;++I){if(A.Selector.pseudos[F.pseudos[I][0]]&&!A.Selector.pseudos[F.pseudos[I][0]](D,F.pseudos[I][1])){return false;}}}return(F.previous&&F.previous.combinator!==",")?A.Selector._combinators[F.previous.combinator](D,F):true;},filter:function(E,D){E=E||[];var G,C=[],H=A.Selector._tokenize(D);if(!E.item){for(var F=0,B=E.length;F<B;++F){if(!E[F].tagName){G=A.Selector.document.getElementById(E[F]);if(G){E[F]=G;}else{}}}}C=A.Selector._filter(E,A.Selector._tokenize(D)[0]);return C;},_filter:function(E,G,H,D){var C=H?null:[],I=A.Selector._foundCache;for(var F=0,B=E.length;F<B;F++){if(!A.Selector._test(E[F],"",G,D)){continue;}if(H){return E[F];}if(D){if(E[F]._found){continue;}E[F]._found=true;I[I.length]=E[F];}C[C.length]=E[F];}return C;},query:function(C,D,E){var B=A.Selector._query(C,D,E);return B;},_query:function(H,M,N,F){var P=(N)?null:[],E;if(!H){return P;}var D=H.split(",");if(D.length>1){var O;for(var I=0,J=D.length;I<J;++I){O=arguments.callee(D[I],M,N,true);P=N?O:P.concat(O);}A.Selector._clearFoundCache();return P;}if(M&&!M.nodeName){M=A.Selector.document.getElementById(M);if(!M){return P;}}M=M||A.Selector.document;if(M.nodeName!=="#document"){A.Dom.generateId(M);H=M.tagName+"#"+M.id+" "+H;E=M;M=M.ownerDocument;}var L=A.Selector._tokenize(H);var K=L[A.Selector._getIdTokenIndex(L)],B=[],C,G=L.pop()||{};if(K){C=A.Selector._getId(K.attributes);}if(C){E=E||A.Selector.document.getElementById(C);if(E&&(M.nodeName==="#document"||A.Dom.isAncestor(M,E))){if(A.Selector._test(E,null,K)){if(K===G){B=[E];}else{if(K.combinator===" "||K.combinator===">"){M=E;}}}}else{return P;}}if(M&&!B.length){B=M.getElementsByTagName(G.tag);}if(B.length){P=A.Selector._filter(B,G,N,F);}return P;},_clearFoundCache:function(){var E=A.Selector._foundCache;for(var C=0,B=E.length;C<B;++C){try{delete E[C]._found;}catch(D){E[C].removeAttribute("_found");}}E=[];},_getRegExp:function(D,B){var C=A.Selector._regexCache;B=B||"";if(!C[D+B]){C[D+B]=new RegExp(D,B);}return C[D+B];},_getChildren:function(){if(document.documentElement.children){return function(C,B){return(B)?C.children.tags(B):C.children||[];};}else{return function(F,C){if(F._children){return F._children;}var E=[],G=F.childNodes;for(var D=0,B=G.length;D<B;++D){if(G[D].tagName){if(!C||G[D].tagName===C){E[E.length]=G[D];}}}F._children=E;return E;};}}(),_combinators:{" ":function(C,B){while((C=C.parentNode)){if(A.Selector._test(C,"",B.previous)){return tLine truncated
|
||||
++D){if(C[D][0]=="id"&&C[D][1]==="="){return C[D][2];}}},_getIdTokenIndex:function(D){for(var C=0,B=D.length;C<B;++C){if(A.Selector._getId(D[C].attributes)){return C;}}return -1;},_patterns:{tag:/^((?:-?[_a-z]+[\w-]*)|\*)/i,attributes:/^\[([a-z]+\w*)+([~\|\^\$\*!=]=?)?['"]?([^\]]*?)['"]?\]/i,pseudos:/^:([-\w]+)(?:\(['"]?(.+)['"]?\))*/i,combinator:/^\s*([>+~]|\s)\s*/},_tokenize:function(B){var D={},H=[],I,G=false,F=A.Selector._patterns,C;B=A.Selector._replaceShorthand(B);do{G=false;for(var E in F){if(YAHOO.lang.hasOwnProperty(F,E)){if(E!="tag"&&E!="combinator"){D[E]=D[E]||[];}if((C=F[E].exec(B))){G=true;if(E!="tag"&&E!="combinator"){if(E==="attributes"&&C[1]==="id"){D.id=C[3];}D[E].push(C.slice(1));}else{D[E]=C[1];}B=B.replace(C[0],"");if(E==="combinator"||!B.length){D.attributes=A.Selector._fixAttributes(D.attributes);D.pseudos=D.pseudos||[];D.tag=D.tag?D.tag.toUpperCase():"*";H.push(D);D={previous:D};}}}}}while(G);return H;},_fixAttributes:function(C){var D=A.Selector.attrAliases;C=C||[];for(var E=0,B=C.length;E<B;++E){if(D[C[E][0]]){C[E][0]=D[C[E][0]];}if(!C[E][1]){C[E][1]="";}}return C;},_replaceShorthand:function(C){var D=A.Selector.shorthand;var E=C.match(A.Selector._re.attr);if(E){C=C.replace(A.Selector._re.attr,"REPLACED_ATTRIBUTE");}for(var G in D){if(YAHOO.lang.hasOwnProperty(D,G)){C=C.replace(A.Selector._getRegExp(G,"gi"),D[G]);}}if(E){for(var F=0,B=E.length;F<B;++F){C=C.replace("REPLACED_ATTRIBUTE",E[F]);}}return C;}};if(YAHOO.env.ua.ie&&YAHOO.env.ua.ie<8){A.Selector.attrAliases["class"]="className";A.Selector.attrAliases["for"]="htmlFor";}})();YAHOO.register("selector",YAHOO.util.Selector,{version:"2.7.0",build:"1796"});
|
||||
|
||||
// yuitest/yuitest-min.js
|
||||
YAHOO.namespace("tool");YAHOO.tool.TestCase=function(A){this._should={};for(var B in A){this[B]=A[B];}if(!YAHOO.lang.isString(this.name)){this.name=YAHOO.util.Dom.generateId(null,"testCase");}};YAHOO.tool.TestCase.prototype={resume:function(A){YAHOO.tool.TestRunner.resume(A);},wait:function(B,A){throw new YAHOO.tool.TestCase.Wait(B,A);},setUp:function(){},tearDown:function(){}};YAHOO.tool.TestCase.Wait=function(B,A){this.segment=(YAHOO.lang.isFunction(B)?B:null);this.delay=(YAHOO.lang.isNumber(A)?A:0);};YAHOO.namespace("tool");YAHOO.tool.TestSuite=function(A){this.name="";this.items=[];if(YAHOO.lang.isString(A)){this.name=A;}else{if(YAHOO.lang.isObject(A)){YAHOO.lang.augmentObject(this,A,true);}}if(this.name===""){this.name=YAHOO.util.Dom.generateId(null,"testSuite");}};YAHOO.tool.TestSuite.prototype={add:function(A){if(A instanceof YAHOO.tool.TestSuite||A instanceof YAHOO.tool.TestCase){this.items.push(A);}},setUp:function(){},tearDown:function(){}};YAHOO.namespace("tool");YAHOO.tool.TestRunner=(function(){function B(C){this.testObject=C;this.firstChild=null;this.lastChild=null;this.parent=null;this.next=null;this.results={passed:0,failed:0,total:0,ignored:0};if(C instanceof YAHOO.tool.TestSuite){this.results.type="testsuite";this.results.name=C.name;}else{if(C instanceof YAHOO.tool.TestCase){this.results.type="testcase";this.results.name=C.name;}}}B.prototype={appendChild:function(C){var D=new B(C);if(this.firstChild===null){this.firstChild=this.lastChild=D;}else{this.lastChild.next=D;this.lastChild=D;}D.parent=this;return D;}};function A(){A.superclass.constructor.apply(this,arguments);this.masterSuite=new YAHOO.tool.TestSuite("YUI Test Results");this._cur=null;this._root=null;var D=[this.TEST_CASE_BEGIN_EVENT,this.TEST_CASE_COMPLETE_EVENT,this.TEST_SUITE_BEGIN_EVENT,this.TEST_SUITE_COMPLETE_EVENT,this.TEST_PASS_EVENT,this.TEST_FAIL_EVENT,this.TEST_IGNORE_EVENT,this.COMPLETE_EVENT,this.BEGIN_EVENT];for(var C=0;C<D.length;C++){this.createEvent(D[C],{scope:this});}}YAHOO.lang.extend(A,YAHOO.util.EventProvider,{TEST_CASE_BEGIN_EVENT:"testcasebegin",TEST_CASE_COMPLETE_EVENT:"testcasecomplete",TEST_SUITE_BEGIN_EVENT:"testsuitebegin",TEST_SUITE_COMPLETE_EVENT:"testsuitecomplete",TEST_PASS_EVENT:"pass",TEST_FAIL_EVENT:"fail",TEST_IGNORE_EVENT:"ignore",COMPLETE_EVENT:"complete",BEGIN_EVENT:"begin",_addTestCaseToTestTree:function(C,D){var E=C.appendChild(D);for(var F in D){if(F.indexOf("test")===0&&YAHOO.lang.isFunction(D[F])){E.appendChild(F);}}},_addTestSuiteToTestTree:function(C,F){var E=C.appendChild(F);for(var D=0;D<F.items.length;D++){if(F.items[D] instanceof YAHOO.tool.TestSuite){this._addTestSuiteToTestTree(E,F.items[D]);}else{if(F.items[D] instanceof YAHOO.tool.TestCase){this._addTestCaseToTestTree(E,F.items[D]);}}}},_buildTestTree:function(){this._root=new B(this.masterSuite);this._cur=this._root;for(var C=0;C<this.masterSuite.items.length;C++){if(this.masterSuite.items[C] instanceof YAHOO.tool.TestSuite){this._addTestSuiteToTestTree(this._root,this.masterSuite.items[C]);}else{if(this.masterSuite.items[C] instanceof YAHOO.tool.TestCase){this._addTestCaseToTestTree(this._root,this.masterSuite.items[C]);}}}},_handleTestObjectComplete:function(C){if(YAHOO.lang.isObject(C.testObject)){C.parent.results.passed+=C.results.passed;C.parent.results.failed+=C.results.failed;C.parent.results.total+=C.results.total;C.parent.results.ignored+=C.results.ignored;C.parent.results[C.testObject.name]=C.results;if(C.testObject instanceof YAHOO.tool.TestSuite){C.testObject.tearDown();this.fireEvent(this.TEST_SUITE_COMPLETE_EVENT,{testSuite:C.testObject,results:C.results});}else{if(C.testObject instanceof YAHOO.tool.TestCase){this.fireEvent(this.TEST_CASE_COMPLETE_EVENT,{testCase:C.testObject,results:C.results});}}}},_next:function(){if(this._cur.firstChild){this._cur=this._cur.firstChild;}else{if(this._cur.next){this._cur=this._cur.next;}else{while(this._cur&&!this._cur.next&&this._cur!==this._root){this._handleTestObjectComplete(this._cur);this._cur=this._cur.parent;}if(this._cur==this._root){this._cur.results.type="report";this._cur.results.timestamp=(new Date()).toLocaleString();this.fireEvent(this.COMPLETE_EVENT,{results:this._cur.results});this._cur=null;}else{this._handleTestObjectComplete(this._cur);this._cur=this._cur.next;}}}return this._cur;},_run:function(){var E=false;var D=this._next();if(D!==null){var C=D.testObject;if(YAHOO.lang.isObject(C)){if(C instanceof YAHOO.tool.TestSuite){this.fireEvent(this.TEST_SUITE_BEGIN_EVENT,{testSuite:C});C.setUp();}else{if(C instanceof YAHOO.tool.TestCase){this.fireEvent(this.TEST_CASE_BEGIN_EVENT,{testCase:C});}}if(typeof setTimeout!="undefined"){setTimeout(function(){YAHOO.tool.TestRunner._run();},0);}else{this._run();}}else{this._runTest(D);}}},_resumeTest:function(G){var C=this._cur;var H=C.testObject;var E=C.parent.testObject;var K=(E._should.fail||{})[H];var D=(E._should.error||{})[H];var F=false;var I=null;try{G.apply(E);if(K){I=new YAHOO.util.ShouldFail();F=true;}else{iLine truncated
|
||||
if(F){C.parent.results.failed++;}else{C.parent.results.passed++;}C.parent.results.total++;if(typeof setTimeout!="undefined"){setTimeout(function(){YAHOO.tool.TestRunner._run();},0);}else{this._run();}},_runTest:function(F){var C=F.testObject;var D=F.parent.testObject;var G=D[C];var E=(D._should.ignore||{})[C];if(E){F.parent.results[C]={result:"ignore",message:"Test ignored",type:"test",name:C};F.parent.results.ignored++;F.parent.results.total++;this.fireEvent(this.TEST_IGNORE_EVENT,{testCase:D,testName:C});if(typeof setTimeout!="undefined"){setTimeout(function(){YAHOO.tool.TestRunner._run();},0);}else{this._run();}}else{D.setUp();this._resumeTest(G);}},fireEvent:function(C,D){D=D||{};D.type=C;A.superclass.fireEvent.call(this,C,D);},add:function(C){this.masterSuite.add(C);},clear:function(){this.masterSuite.items=[];},resume:function(C){this._resumeTest(C||function(){});},run:function(C){var D=YAHOO.tool.TestRunner;D._buildTestTree();D.fireEvent(D.BEGIN_EVENT);D._run();}});return new A();})();YAHOO.namespace("util");YAHOO.util.Assert={_formatMessage:function(B,A){var C=B;if(YAHOO.lang.isString(B)&&B.length>0){return YAHOO.lang.substitute(B,{message:A});}else{return A;}},fail:function(A){throw new YAHOO.util.AssertionError(this._formatMessage(A,"Test force-failed."));},areEqual:function(B,C,A){if(B!=C){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Values should be equal."),B,C);}},areNotEqual:function(A,C,B){if(A==C){throw new YAHOO.util.UnexpectedValue(this._formatMessage(B,"Values should not be equal."),A);}},areNotSame:function(A,C,B){if(A===C){throw new YAHOO.util.UnexpectedValue(this._formatMessage(B,"Values should not be the same."),A);}},areSame:function(B,C,A){if(B!==C){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Values should be the same."),B,C);}},isFalse:function(B,A){if(false!==B){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be false."),false,B);}},isTrue:function(B,A){if(true!==B){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be true."),true,B);}},isNaN:function(B,A){if(!isNaN(B)){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be NaN."),NaN,B);}},isNotNaN:function(B,A){if(isNaN(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Values should not be NaN."),NaN);}},isNotNull:function(B,A){if(YAHOO.lang.isNull(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Values should not be null."),null);}},isNotUndefined:function(B,A){if(YAHOO.lang.isUndefined(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should not be undefined."),undefined);}},isNull:function(B,A){if(!YAHOO.lang.isNull(B)){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be null."),null,B);}},isUndefined:function(B,A){if(!YAHOO.lang.isUndefined(B)){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be undefined."),undefined,B);}},isArray:function(B,A){if(!YAHOO.lang.isArray(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be an array."),B);}},isBoolean:function(B,A){if(!YAHOO.lang.isBoolean(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be a Boolean."),B);}},isFunction:function(B,A){if(!YAHOO.lang.isFunction(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be a function."),B);}},isInstanceOf:function(B,C,A){if(!(C instanceof B)){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value isn't an instance of expected type."),B,C);}},isNumber:function(B,A){if(!YAHOO.lang.isNumber(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be a number."),B);}},isObject:function(B,A){if(!YAHOO.lang.isObject(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be an object."),B);}},isString:function(B,A){if(!YAHOO.lang.isString(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be a string."),B);}},isTypeOf:function(A,C,B){if(typeof C!=A){throw new YAHOO.util.ComparisonFailure(this._formatMessage(B,"Value should be of type "+expected+"."),expected,typeof actual);}}};YAHOO.util.AssertionError=function(A){arguments.callee.superclass.constructor.call(this,A);this.message=A;this.name="AssertionError";};YAHOO.lang.extend(YAHOO.util.AssertionError,Error,{getMessage:function(){return this.message;},toString:function(){return this.name+": "+this.getMessage();},valueOf:function(){return this.toString();}});YAHOO.util.ComparisonFailure=function(B,A,C){arguments.callee.superclass.constructor.call(this,B);this.expected=A;this.actual=C;this.name="ComparisonFailure";};YAHOO.lang.extend(YAHOO.util.ComparisonFailure,YAHOO.util.AssertionError,{getMessage:function(){return this.message+"\nExpected: "+this.expected+" ("+(typeof this.expected)+")\nActual:"+this.actual+" ("+(typeof this.actual)+")";}});YAHOO.util.UnexpectedValue=function(B,A){arguments.callee.superclass.constructor.call(tLine truncated
|
||||
var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(D[A]===E){C=true;}}if(!C){F.fail(F._formatMessage(B,"Value "+E+" ("+(typeof E)+") not found in array ["+D+"]."));}},containsItems:function(C,D,B){for(var A=0;A<C.length;A++){this.contains(C[A],D,B);}},containsMatch:function(E,D,B){if(typeof E!="function"){throw new TypeError("ArrayAssert.containsMatch(): First argument must be a function.");}var C=false;var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(E(D[A])){C=true;}}if(!C){F.fail(F._formatMessage(B,"No match found in array ["+D+"]."));}},doesNotContain:function(E,D,B){var C=false;var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(D[A]===E){C=true;}}if(C){F.fail(F._formatMessage(B,"Value found in array ["+D+"]."));}},doesNotContainItems:function(C,D,B){for(var A=0;A<C.length;A++){this.doesNotContain(C[A],D,B);}},doesNotContainMatch:function(E,D,B){if(typeof E!="function"){throw new TypeError("ArrayAssert.doesNotContainMatch(): First argument must be a function.");}var C=false;var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(E(D[A])){C=true;}}if(C){F.fail(F._formatMessage(B,"Value found in array ["+D+"]."));}},indexOf:function(E,D,A,C){for(var B=0;B<D.length;B++){if(D[B]===E){YAHOO.util.Assert.areEqual(A,B,C||"Value exists at index "+B+" but should be at index "+A+".");return ;}}var F=YAHOO.util.Assert;F.fail(F._formatMessage(C,"Value doesn't exist in array ["+D+"]."));},itemsAreEqual:function(D,F,C){var A=Math.max(D.length,F.length);var E=YAHOO.util.Assert;for(var B=0;B<A;B++){E.areEqual(D[B],F[B],E._formatMessage(C,"Values in position "+B+" are not equal."));}},itemsAreEquivalent:function(E,F,B,D){if(typeof B!="function"){throw new TypeError("ArrayAssert.itemsAreEquivalent(): Third argument must be a function.");}var A=Math.max(E.length,F.length);for(var C=0;C<A;C++){if(!B(E[C],F[C])){throw new YAHOO.util.ComparisonFailure(YAHOO.util.Assert._formatMessage(D,"Values in position "+C+" are not equivalent."),E[C],F[C]);}}},isEmpty:function(C,A){if(C.length>0){var B=YAHOO.util.Assert;B.fail(B._formatMessage(A,"Array should be empty."));}},isNotEmpty:function(C,A){if(C.length===0){var B=YAHOO.util.Assert;B.fail(B._formatMessage(A,"Array should not be empty."));}},itemsAreSame:function(D,F,C){var A=Math.max(D.length,F.length);var E=YAHOO.util.Assert;for(var B=0;B<A;B++){E.areSame(D[B],F[B],E._formatMessage(C,"Values in position "+B+" are not the same."));}},lastIndexOf:function(E,D,A,C){var F=YAHOO.util.Assert;for(var B=D.length;B>=0;B--){if(D[B]===E){F.areEqual(A,B,F._formatMessage(C,"Value exists at index "+B+" but should be at index "+A+"."));return ;}}F.fail(F._formatMessage(C,"Value doesn't exist in array."));}};YAHOO.namespace("util");YAHOO.util.ObjectAssert={propertiesAreEqual:function(D,G,C){var F=YAHOO.util.Assert;var B=[];for(var E in D){B.push(E);}for(var A=0;A<B.length;A++){F.isNotUndefined(G[B[A]],F._formatMessage(C,"Property '"+B[A]+"' expected."));}},hasProperty:function(A,B,C){if(!(A in B)){var D=YAHOO.util.Assert;D.fail(D._formatMessage(C,"Property '"+A+"' not found on object."));}},hasOwnProperty:function(A,B,C){if(!YAHOO.lang.hasOwnProperty(B,A)){var D=YAHOO.util.Assert;D.fail(D._formatMessage(C,"Property '"+A+"' not found on object instance."));}}};YAHOO.util.DateAssert={datesAreEqual:function(B,D,A){if(B instanceof Date&&D instanceof Date){var C=YAHOO.util.Assert;C.areEqual(B.getFullYear(),D.getFullYear(),C._formatMessage(A,"Years should be equal."));C.areEqual(B.getMonth(),D.getMonth(),C._formatMessage(A,"Months should be equal."));C.areEqual(B.getDate(),D.getDate(),C._formatMessage(A,"Day of month should be equal."));}else{throw new TypeError("DateAssert.datesAreEqual(): Expected and actual values must be Date objects.");}},timesAreEqual:function(B,D,A){if(B instanceof Date&&D instanceof Date){var C=YAHOO.util.Assert;C.areEqual(B.getHours(),D.getHours(),C._formatMessage(A,"Hours should be equal."));C.areEqual(B.getMinutes(),D.getMinutes(),C._formatMessage(A,"Minutes should be equal."));C.areEqual(B.getSeconds(),D.getSeconds(),C._formatMessage(A,"Seconds should be equal."));}else{throw new TypeError("DateAssert.timesAreEqual(): Expected and actual values must be Date objects.");}}};YAHOO.namespace("util");YAHOO.util.UserAction={simulateKeyEvent:function(F,J,E,C,L,B,A,K,H,N,M){F=YAHOO.util.Dom.get(F);if(!F){throw new Error("simulateKeyEvent(): Invalid target.");}if(YAHOO.lang.isString(J)){J=J.toLowerCase();switch(J){case"keyup":case"keydown":case"keypress":break;case"textevent":J="keypress";break;default:throw new Error("simulateKeyEvent(): Event type '"+J+"' not supported.");}}else{throw new Error("simulateKeyEvent(): Event type must be a string.");}if(!YAHOO.lang.isBoolean(E)){E=true;}if(!YAHOO.lang.isBoolean(C)){C=true;}if(!YAHOO.lang.isObject(L)){L=window;}if(!YAHOO.lang.isBoolean(B)){B=false;}if(!YAHOO.lang.isBoolean(A)){A=false;}if(!YAHOO.lang.isBoolean(K)){K=false;}if(!YAHOO.lang.isBoolean(H)){H=false;}if(!YAHOO.lang.isNumber(N)){N=0;}if(!YAHOO.laLine truncated
|
||||
}}else{throw new Error("simulateMouseEvent(): Event type must be a string.");}if(!YAHOO.lang.isBoolean(H)){H=true;}if(!YAHOO.lang.isBoolean(E)){E=(P!="mousemove");}if(!YAHOO.lang.isObject(Q)){Q=window;}if(!YAHOO.lang.isNumber(J)){J=1;}if(!YAHOO.lang.isNumber(G)){G=0;}if(!YAHOO.lang.isNumber(F)){F=0;}if(!YAHOO.lang.isNumber(D)){D=0;}if(!YAHOO.lang.isNumber(B)){B=0;}if(!YAHOO.lang.isBoolean(C)){C=false;}if(!YAHOO.lang.isBoolean(A)){A=false;}if(!YAHOO.lang.isBoolean(O)){O=false;}if(!YAHOO.lang.isBoolean(M)){M=false;}if(!YAHOO.lang.isNumber(I)){I=0;}var N=null;if(YAHOO.lang.isFunction(document.createEvent)){N=document.createEvent("MouseEvents");if(N.initMouseEvent){N.initMouseEvent(P,H,E,Q,J,G,F,D,B,C,A,O,M,I,L);}else{N=document.createEvent("UIEvents");N.initEvent(P,H,E);N.view=Q;N.detail=J;N.screenX=G;N.screenY=F;N.clientX=D;N.clientY=B;N.ctrlKey=C;N.altKey=A;N.metaKey=M;N.shiftKey=O;N.button=I;N.relatedTarget=L;}if(L&&!N.relatedTarget){if(P=="mouseout"){N.toElement=L;}else{if(P=="mouseover"){N.fromElement=L;}}}K.dispatchEvent(N);}else{if(YAHOO.lang.isObject(document.createEventObject)){N=document.createEventObject();N.bubbles=H;N.cancelable=E;N.view=Q;N.detail=J;N.screenX=G;N.screenY=F;N.clientX=D;N.clientY=B;N.ctrlKey=C;N.altKey=A;N.metaKey=M;N.shiftKey=O;switch(I){case 0:N.button=1;break;case 1:N.button=4;break;case 2:break;default:N.button=0;}N.relatedTarget=L;K.fireEvent("on"+P,N);}else{throw new Error("simulateMouseEvent(): No event simulation framework present.");}}},fireMouseEvent:function(C,B,A){A=A||{};this.simulateMouseEvent(C,B,A.bubbles,A.cancelable,A.view,A.detail,A.screenX,A.screenY,A.clientX,A.clientY,A.ctrlKey,A.altKey,A.shiftKey,A.metaKey,A.button,A.relatedTarget);},click:function(B,A){this.fireMouseEvent(B,"click",A);},dblclick:function(B,A){this.fireMouseEvent(B,"dblclick",A);},mousedown:function(B,A){this.fireMouseEvent(B,"mousedown",A);},mousemove:function(B,A){this.fireMouseEvent(B,"mousemove",A);},mouseout:function(B,A){this.fireMouseEvent(B,"mouseout",A);},mouseover:function(B,A){this.fireMouseEvent(B,"mouseover",A);},mouseup:function(B,A){this.fireMouseEvent(B,"mouseup",A);},fireKeyEvent:function(B,C,A){A=A||{};this.simulateKeyEvent(C,B,A.bubbles,A.cancelable,A.view,A.ctrlKey,A.altKey,A.shiftKey,A.metaKey,A.keyCode,A.charCode);},keydown:function(B,A){this.fireKeyEvent("keydown",B,A);},keypress:function(B,A){this.fireKeyEvent("keypress",B,A);},keyup:function(B,A){this.fireKeyEvent("keyup",B,A);}};YAHOO.namespace("tool");YAHOO.tool.TestManager={TEST_PAGE_BEGIN_EVENT:"testpagebegin",TEST_PAGE_COMPLETE_EVENT:"testpagecomplete",TEST_MANAGER_BEGIN_EVENT:"testmanagerbegin",TEST_MANAGER_COMPLETE_EVENT:"testmanagercomplete",_curPage:null,_frame:null,_logger:null,_timeoutId:0,_pages:[],_results:null,_handleTestRunnerComplete:function(A){this.fireEvent(this.TEST_PAGE_COMPLETE_EVENT,{page:this._curPage,results:A.results});this._processResults(this._curPage,A.results);this._logger.clearTestRunner();if(this._pages.length){this._timeoutId=setTimeout(function(){YAHOO.tool.TestManager._run();},1000);}else{this.fireEvent(this.TEST_MANAGER_COMPLETE_EVENT,this._results);}},_processResults:function(C,A){var B=this._results;B.passed+=A.passed;B.failed+=A.failed;B.ignored+=A.ignored;B.total+=A.total;if(A.failed){B.failedPages.push(C);}else{B.passedPages.push(C);}A.name=C;A.type="page";B[C]=A;},_run:function(){this._curPage=this._pages.shift();this.fireEvent(this.TEST_PAGE_BEGIN_EVENT,this._curPage);this._frame.location.replace(this._curPage);},load:function(){if(parent.YAHOO.tool.TestManager!==this){parent.YAHOO.tool.TestManager.load();}else{if(this._frame){var A=this._frame.YAHOO.tool.TestRunner;this._logger.setTestRunner(A);A.subscribe(A.COMPLETE_EVENT,this._handleTestRunnerComplete,this,true);A.run();}}},setPages:function(A){this._pages=A;},start:function(){if(!this._initialized){this.createEvent(this.TEST_PAGE_BEGIN_EVENT);this.createEvent(this.TEST_PAGE_COMPLETE_EVENT);this.createEvent(this.TEST_MANAGER_BEGIN_EVENT);this.createEvent(this.TEST_MANAGER_COMPLETE_EVENT);if(!this._frame){var A=document.createElement("iframe");A.style.visibility="hidden";A.style.position="absolute";document.body.appendChild(A);this._frame=A.contentWindow||A.contentDocument.ownerWindow;}if(!this._logger){this._logger=new YAHOO.tool.TestLogger();}this._initialized=true;}this._results={passed:0,failed:0,ignored:0,total:0,type:"report",name:"YUI Test Results",failedPages:[],passedPages:[]};this.fireEvent(this.TEST_MANAGER_BEGIN_EVENT,null);this._run();},stop:function(){clearTimeout(this._timeoutId);}};YAHOO.lang.augmentObject(YAHOO.tool.TestManager,YAHOO.util.EventProvider.prototype);YAHOO.namespace("tool");YAHOO.tool.TestLogger=function(B,A){YAHOO.tool.TestLogger.superclass.constructor.call(this,B,A);this.init();};YAHOO.lang.extend(YAHOO.tool.TestLogger,YAHOO.widget.LogReader,{footerEnabled:true,newestOnTop:false,formatMsg:function(B){var A=B.category;var C=this.html2Text(B.msg);return"<pre><p><span class=\""+A+"\">"+A.toUpperLine truncated
|
||||
A.subscribe(A.TEST_CASE_COMPLETE_EVENT,this._handleTestRunnerEvent,this,true);},_handleTestRunnerEvent:function(D){var A=YAHOO.tool.TestRunner;var C="";var B="";switch(D.type){case A.BEGIN_EVENT:C="Testing began at "+(new Date()).toString()+".";B="info";break;case A.COMPLETE_EVENT:C="Testing completed at "+(new Date()).toString()+".\nPassed:"+D.results.passed+" Failed:"+D.results.failed+" Total:"+D.results.total;B="info";break;case A.TEST_FAIL_EVENT:C=D.testName+": "+D.error.getMessage();B="fail";break;case A.TEST_IGNORE_EVENT:C=D.testName+": ignored.";B="ignore";break;case A.TEST_PASS_EVENT:C=D.testName+": passed.";B="pass";break;case A.TEST_SUITE_BEGIN_EVENT:C="Test suite \""+D.testSuite.name+"\" started.";B="info";break;case A.TEST_SUITE_COMPLETE_EVENT:C="Test suite \""+D.testSuite.name+"\" completed.\nPassed:"+D.results.passed+" Failed:"+D.results.failed+" Total:"+D.results.total;B="info";break;case A.TEST_CASE_BEGIN_EVENT:C="Test case \""+D.testCase.name+"\" started.";B="info";break;case A.TEST_CASE_COMPLETE_EVENT:C="Test case \""+D.testCase.name+"\" completed.\nPassed:"+D.results.passed+" Failed:"+D.results.failed+" Total:"+D.results.total;B="info";break;default:C="Unexpected event "+D.type;C="info";}YAHOO.log(C,B,"TestRunner");}});YAHOO.namespace("tool.TestFormat");YAHOO.tool.TestFormat.JSON=function(A){return YAHOO.lang.JSON.stringify(A);};YAHOO.tool.TestFormat.XML=function(C){var A=YAHOO.lang;var B="<"+C.type+" name=\""+C.name.replace(/"/g,""").replace(/'/g,"'")+"\"";if(C.type=="test"){B+=" result=\""+C.result+"\" message=\""+C.message+"\">";}else{B+=" passed=\""+C.passed+"\" failed=\""+C.failed+"\" ignored=\""+C.ignored+"\" total=\""+C.total+"\">";for(var D in C){if(A.hasOwnProperty(C,D)&&A.isObject(C[D])&&!A.isArray(C[D])){B+=arguments.callee(C[D]);}}}B+="</"+C.type+">";return B;};YAHOO.namespace("tool");YAHOO.tool.TestReporter=function(A,B){this.url=A;this.format=B||YAHOO.tool.TestFormat.XML;this._fields=new Object();this._form=null;this._iframe=null;};YAHOO.tool.TestReporter.prototype={constructor:YAHOO.tool.TestReporter,addField:function(A,B){this._fields[A]=B;},clearFields:function(){this._fields=new Object();},destroy:function(){if(this._form){this._form.parentNode.removeChild(this._form);this._form=null;}if(this._iframe){this._iframe.parentNode.removeChild(this._iframe);this._iframe=null;}this._fields=null;},report:function(A){if(!this._form){this._form=document.createElement("form");this._form.method="post";this._form.style.visibility="hidden";this._form.style.position="absolute";this._form.style.top=0;document.body.appendChild(this._form);if(YAHOO.env.ua.ie){this._iframe=document.createElement("<iframe name=\"yuiTestTarget\" />");}else{this._iframe=document.createElement("iframe");this._iframe.name="yuiTestTarget";}this._iframe.src="javascript:false";this._iframe.style.visibility="hidden";this._iframe.style.position="absolute";this._iframe.style.top=0;document.body.appendChild(this._iframe);this._form.target="yuiTestTarget";}this._form.action=this.url;while(this._form.hasChildNodes()){this._form.removeChild(this._form.lastChild);}this._fields.results=this.format(A);this._fields.useragent=navigator.userAgent;this._fields.timestamp=(new Date()).toLocaleString();for(var B in this._fields){if(YAHOO.lang.hasOwnProperty(this._fields,B)&&typeof this._fields[B]!="function"){if(YAHOO.env.ua.ie){input=document.createElement("<input name=\""+B+"\" >");}else{input=document.createElement("input");input.name=B;}input.type="hidden";input.value=this._fields[B];this._form.appendChild(input);}}delete this._fields.results;delete this._fields.useragent;delete this._fields.timestamp;if(arguments[1]!==false){this._form.submit();}}};YAHOO.register("yuitest",YAHOO.tool.TestRunner,{version:"2.5.2",build:"1076"});
|
||||
Reference in new issue
Block a user