171 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			HTML
		
	
	
		
		
			
		
	
	
			171 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			HTML
		
	
	
| 
								 | 
							
								<!DOCTYPE html>
							 | 
						||
| 
								 | 
							
								<html>
							 | 
						||
| 
								 | 
							
								<head>
							 | 
						||
| 
								 | 
							
								<title>Automatic link tests</title>
							 | 
						||
| 
								 | 
							
								<link rel="stylesheet" href="http://code.jquery.com/qunit/qunit-git.css" type="text/css" />
							 | 
						||
| 
								 | 
							
								<script src="http://code.jquery.com/qunit/qunit-git.js"></script>
							 | 
						||
| 
								 | 
							
								<script src="js/qunit/reporter.js"></script>
							 | 
						||
| 
								 | 
							
								<script src="js/utils.js"></script>
							 | 
						||
| 
								 | 
							
								<script src="js/tinymce_loader.js"></script>
							 | 
						||
| 
								 | 
							
								<script src="js/dsl.js"></script>
							 | 
						||
| 
								 | 
							
								<script src="js/autolink.actions.js"></script>
							 | 
						||
| 
								 | 
							
								<script src="js/states.js"></script>
							 | 
						||
| 
								 | 
							
								<script><!--
							 | 
						||
| 
								 | 
							
								window.robotUsesSymbols = true;
							 | 
						||
| 
								 | 
							
								var editor;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								QUnit.config.reorder = false;
							 | 
						||
| 
								 | 
							
								QUnit.config.autostart = false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module("Automatic Links", {
							 | 
						||
| 
								 | 
							
								    autostart: false,
							 | 
						||
| 
								 | 
							
								    setup: function() {
							 | 
						||
| 
								 | 
							
								        window.queue = new dsl.Queue();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if (!tinymce.isIE) {
							 | 
						||
| 
								 | 
							
									asyncTest('Typing a HTTP URL', function() {
							 | 
						||
| 
								 | 
							
										TypingHTTPURL.inA(NonEmptyParagraph).gives(new RegExp('^<p><a href="http://www.ephox.com">http://www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingHTTPURL.inA(ParagraphWithMarginLeft).gives(new RegExp('^<p style="margin-left: 60px;"><a href="http://www.ephox.com">http://www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingHTTPURL.inA(ParagraphWithPaddingLeft).gives(new RegExp('^<p style="padding-left: 60px;"><a href="http://www.ephox.com">http://www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingHTTPURL.inA(ParagraphWithMarginAndPaddingLeft).gives(new RegExp('^<p style="padding-left: 60px; margin-left: 60px;"><a href="http://www.ephox.com">http://www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingHTTPURL.inA(NonEmptyHeading).gives(new RegExp('^<h1><a href="http://www.ephox.com">http://www.ephox.com</a>(\\s| )Test</h1>$'));
							 | 
						||
| 
								 | 
							
										TypingHTTPURL.inA(TableCellWithoutBrs2).gives(new RegExp('^<table><tbody><tr><td><a href="http://www.ephox.com">http://www.ephox.com</a>(\\s| )Test</td><td> </td></tr></tbody></table>$'));
							 | 
						||
| 
								 | 
							
										TypingHTTPURL.inA(TableCellWithBrsFirstLine2).gives(new RegExp('^<table><tbody><tr><td><a href="http://www.ephox.com">http://www.ephox.com</a>(\\s| )Test<br />Line 2</td><td> </td></tr></tbody></table>$'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										TypingEclipsedHTTPURL.inA(NonEmptyParagraph).gives(new RegExp('^<p>\\(<a href="http://www.ephox.com">http://www.ephox.com</a>\\)(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										TypingHTTPURLAndNewline.inA(NonEmptyParagraph).gives(new RegExp('^<p><a href="http://www.ephox.com">http://www.ephox.com</a></p><p>(Test|<a href=\"http://www.ephox.com\"></a>Test)</p>$'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										queue.done();
							 | 
						||
| 
								 | 
							
									});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									asyncTest('Typing a HTTPS URL', function() {
							 | 
						||
| 
								 | 
							
										TypingHTTPSURL.inA(NonEmptyParagraph).gives(new RegExp('^<p><a href="https://www.ephox.com">https://www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingHTTPSURL.inA(ParagraphWithMarginLeft).gives(new RegExp('^<p style="margin-left: 60px;"><a href="https://www.ephox.com">https://www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingHTTPSURL.inA(ParagraphWithPaddingLeft).gives(new RegExp('^<p style="padding-left: 60px;"><a href="https://www.ephox.com">https://www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingHTTPSURL.inA(ParagraphWithMarginAndPaddingLeft).gives(new RegExp('^<p style="padding-left: 60px; margin-left: 60px;"><a href="https://www.ephox.com">https://www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingHTTPSURL.inA(NonEmptyHeading).gives(new RegExp('^<h1><a href="https://www.ephox.com">https://www.ephox.com</a>(\\s| )Test</h1>$'));
							 | 
						||
| 
								 | 
							
										TypingHTTPSURL.inA(TableCellWithoutBrs2).gives(new RegExp('^<table><tbody><tr><td><a href="https://www.ephox.com">https://www.ephox.com</a>(\\s| )Test</td><td> </td></tr></tbody></table>$'));
							 | 
						||
| 
								 | 
							
										TypingHTTPSURL.inA(TableCellWithBrsFirstLine2).gives(new RegExp('^<table><tbody><tr><td><a href="https://www.ephox.com">https://www.ephox.com</a>(\\s| )Test<br />Line 2</td><td> </td></tr></tbody></table>$'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										TypingEclipsedHTTPSURL.inA(NonEmptyParagraph).gives(new RegExp('^<p>\\(<a href="https://www.ephox.com">https://www.ephox.com</a>\\)(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										TypingHTTPSURLAndNewline.inA(NonEmptyParagraph).gives(new RegExp('^<p><a href="https://www.ephox.com">https://www.ephox.com</a></p><p>(Test|<a href=\"https://www.ephox.com\"></a>Test)</p>$'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										queue.done();
							 | 
						||
| 
								 | 
							
									});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									asyncTest('Typing a SSH URL', function() {
							 | 
						||
| 
								 | 
							
										TypingSSHURL.inA(NonEmptyParagraph).gives(new RegExp('^<p><a href="ssh://www.ephox.com">ssh://www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingSSHURL.inA(ParagraphWithMarginLeft).gives(new RegExp('^<p style="margin-left: 60px;"><a href="ssh://www.ephox.com">ssh://www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingSSHURL.inA(ParagraphWithPaddingLeft).gives(new RegExp('^<p style="padding-left: 60px;"><a href="ssh://www.ephox.com">ssh://www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingSSHURL.inA(ParagraphWithMarginAndPaddingLeft).gives(new RegExp('^<p style="padding-left: 60px; margin-left: 60px;"><a href="ssh://www.ephox.com">ssh://www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingSSHURL.inA(NonEmptyHeading).gives(new RegExp('^<h1><a href="ssh://www.ephox.com">ssh://www.ephox.com</a>(\\s| )Test</h1>$'));
							 | 
						||
| 
								 | 
							
										TypingSSHURL.inA(TableCellWithoutBrs2).gives(new RegExp('^<table><tbody><tr><td><a href="ssh://www.ephox.com">ssh://www.ephox.com</a>(\\s| )Test</td><td> </td></tr></tbody></table>$'));
							 | 
						||
| 
								 | 
							
										TypingSSHURL.inA(TableCellWithBrsFirstLine2).gives(new RegExp('^<table><tbody><tr><td><a href="ssh://www.ephox.com">ssh://www.ephox.com</a>(\\s| )Test<br />Line 2</td><td> </td></tr></tbody></table>$'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										TypingEclipsedSSHURL.inA(NonEmptyParagraph).gives(new RegExp('^<p>\\(<a href="ssh://www.ephox.com">ssh://www.ephox.com</a>\\)(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										TypingSSHURLAndNewline.inA(NonEmptyParagraph).gives(new RegExp('^<p><a href="ssh://www.ephox.com">ssh://www.ephox.com</a></p><p>(Test|<a href=\"ssh://www.ephox.com\"></a>Test)</p>$'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										queue.done();
							 | 
						||
| 
								 | 
							
									});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									asyncTest('Typing a FTP URL', function() {
							 | 
						||
| 
								 | 
							
										TypingFTPURL.inA(NonEmptyParagraph).gives(new RegExp('^<p><a href="ftp://www.ephox.com">ftp://www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingFTPURL.inA(ParagraphWithMarginLeft).gives(new RegExp('^<p style="margin-left: 60px;"><a href="ftp://www.ephox.com">ftp://www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingFTPURL.inA(ParagraphWithPaddingLeft).gives(new RegExp('^<p style="padding-left: 60px;"><a href="ftp://www.ephox.com">ftp://www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingFTPURL.inA(ParagraphWithMarginAndPaddingLeft).gives(new RegExp('^<p style="padding-left: 60px; margin-left: 60px;"><a href="ftp://www.ephox.com">ftp://www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingFTPURL.inA(NonEmptyHeading).gives(new RegExp('^<h1><a href="ftp://www.ephox.com">ftp://www.ephox.com</a>(\\s| )Test</h1>$'));
							 | 
						||
| 
								 | 
							
										TypingFTPURL.inA(TableCellWithoutBrs2).gives(new RegExp('^<table><tbody><tr><td><a href="ftp://www.ephox.com">ftp://www.ephox.com</a>(\\s| )Test</td><td> </td></tr></tbody></table>$'));
							 | 
						||
| 
								 | 
							
										TypingFTPURL.inA(TableCellWithBrsFirstLine2).gives(new RegExp('^<table><tbody><tr><td><a href="ftp://www.ephox.com">ftp://www.ephox.com</a>(\\s| )Test<br />Line 2</td><td> </td></tr></tbody></table>$'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										TypingEclipsedFTPURL.inA(NonEmptyParagraph).gives(new RegExp('^<p>\\(<a href="ftp://www.ephox.com">ftp://www.ephox.com</a>\\)(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										TypingFTPURLAndNewline.inA(NonEmptyParagraph).gives(new RegExp('^<p><a href="ftp://www.ephox.com">ftp://www.ephox.com</a></p><p>(Test|<a href=\"ftp://www.ephox.com\"></a>Test)</p>$'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										queue.done();
							 | 
						||
| 
								 | 
							
									});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									asyncTest('Typing a WWW URL', function() {
							 | 
						||
| 
								 | 
							
										TypingWWWURL.inA(NonEmptyParagraph).gives(new RegExp('^<p><a href="http://www.ephox.com">www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingWWWURL.inA(ParagraphWithMarginLeft).gives(new RegExp('^<p style="margin-left: 60px;"><a href="http://www.ephox.com">www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingWWWURL.inA(ParagraphWithPaddingLeft).gives(new RegExp('^<p style="padding-left: 60px;"><a href="http://www.ephox.com">www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingWWWURL.inA(ParagraphWithMarginAndPaddingLeft).gives(new RegExp('^<p style="padding-left: 60px; margin-left: 60px;"><a href="http://www.ephox.com">www.ephox.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingWWWURL.inA(NonEmptyHeading).gives(new RegExp('^<h1><a href="http://www.ephox.com">www.ephox.com</a>(\\s| )Test</h1>$'));
							 | 
						||
| 
								 | 
							
										TypingWWWURL.inA(TableCellWithoutBrs2).gives(new RegExp('^<table><tbody><tr><td><a href="http://www.ephox.com">www.ephox.com</a>(\\s| )Test</td><td> </td></tr></tbody></table>$'));
							 | 
						||
| 
								 | 
							
										TypingWWWURL.inA(TableCellWithBrsFirstLine2).gives(new RegExp('^<table><tbody><tr><td><a href="http://www.ephox.com">www.ephox.com</a>(\\s| )Test<br />Line 2</td><td> </td></tr></tbody></table>$'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										TypingEclipsedWWWURL.inA(NonEmptyParagraph).gives(new RegExp('^<p>\\(<a href="http://www.ephox.com">www.ephox.com</a>\\)(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										TypingWWWURLAndNewline.inA(NonEmptyParagraph).gives(new RegExp('^<p><a href="http://www.ephox.com">www.ephox.com</a></p><p>(Test|<a href=\"http://www.ephox.com\"></a>Test)</p>$'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										queue.done();
							 | 
						||
| 
								 | 
							
									});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									asyncTest('Typing a WWW URL with end dot', function() {
							 | 
						||
| 
								 | 
							
										TypingWWWURLWithEndDot.inA(NonEmptyParagraph).gives(new RegExp('^<p><a href="http://www.site.com">www.site.com</a>.(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingWWWURLWithEndDot.inA(ParagraphWithMarginLeft).gives(new RegExp('^<p style="margin-left: 60px;"><a href="http://www.site.com">www.site.com</a>.(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingWWWURLWithEndDot.inA(ParagraphWithPaddingLeft).gives(new RegExp('^<p style="padding-left: 60px;"><a href="http://www.site.com">www.site.com</a>.(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingWWWURLWithEndDot.inA(ParagraphWithMarginAndPaddingLeft).gives(new RegExp('^<p style="padding-left: 60px; margin-left: 60px;"><a href="http://www.site.com">www.site.com</a>.(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingWWWURLWithEndDot.inA(NonEmptyHeading).gives(new RegExp('^<h1><a href="http://www.site.com">www.site.com</a>.(\\s| )Test</h1>$'));
							 | 
						||
| 
								 | 
							
										TypingWWWURLWithEndDot.inA(TableCellWithoutBrs2).gives(new RegExp('^<table><tbody><tr><td><a href="http://www.site.com">www.site.com</a>.(\\s| )Test</td><td> </td></tr></tbody></table>$'));
							 | 
						||
| 
								 | 
							
										TypingWWWURLWithEndDot.inA(TableCellWithBrsFirstLine2).gives(new RegExp('^<table><tbody><tr><td><a href="http://www.site.com">www.site.com</a>.(\\s| )Test<br />Line 2</td><td> </td></tr></tbody></table>$'));
							 | 
						||
| 
								 | 
							
										queue.done();
							 | 
						||
| 
								 | 
							
									});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									asyncTest('Typing a mail address', function() {
							 | 
						||
| 
								 | 
							
										TypingMailAddr.inA(NonEmptyParagraph).gives(new RegExp('^<p><a href="mailto:user@domain.com">user@domain.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
										TypingDashedMailAddr.inA(NonEmptyParagraph).gives(new RegExp('^<p><a href="mailto:first-last@domain.com">first-last@domain.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										queue.done();
							 | 
						||
| 
								 | 
							
									});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									asyncTest('Typing a mail address with protocol', function() {
							 | 
						||
| 
								 | 
							
										TypingMailAddrWithProtocol.inA(NonEmptyParagraph).gives(new RegExp('^<p><a href="mailto:user@domain.com">mailto:user@domain.com</a>(\\s| )Test</p>$'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										queue.done();
							 | 
						||
| 
								 | 
							
									});
							 | 
						||
| 
								 | 
							
								} else {
							 | 
						||
| 
								 | 
							
									test("IE has built in support", function() {
							 | 
						||
| 
								 | 
							
										ok(true, "Skipped");
							 | 
						||
| 
								 | 
							
									});
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var initTinyFunction = function(){
							 | 
						||
| 
								 | 
							
									tinymce.init({
							 | 
						||
| 
								 | 
							
										mode : "exact",
							 | 
						||
| 
								 | 
							
										elements : "elm1",
							 | 
						||
| 
								 | 
							
										plugins : "autolink",
							 | 
						||
| 
								 | 
							
										add_unload_trigger : false,
							 | 
						||
| 
								 | 
							
										webkit_fake_resize: false,
							 | 
						||
| 
								 | 
							
										theme_advanced_styles : 'test1=test1;test2=test2',
							 | 
						||
| 
								 | 
							
										valid_styles : {
							 | 
						||
| 
								 | 
							
											'*' : 'text-align,padding-left,color,font-size,font-family,background-color,font-weight,font-style,text-decoration,float,margin,margin-top,margin-right,margin-bottom,margin-left,display'
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										indent : 0,
							 | 
						||
| 
								 | 
							
										init_instance_callback : function(ed) {
							 | 
						||
| 
								 | 
							
											editor = ed;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									});
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								--></script>
							 | 
						||
| 
								 | 
							
								</head>
							 | 
						||
| 
								 | 
							
								<body>
							 | 
						||
| 
								 | 
							
									<h1 id="qunit-header">Automatic link tests</h1>
							 | 
						||
| 
								 | 
							
									<h2 id="qunit-banner"></h2>
							 | 
						||
| 
								 | 
							
									<div id="qunit-testrunner-toolbar"></div>
							 | 
						||
| 
								 | 
							
									<h2 id="qunit-userAgent"></h2>
							 | 
						||
| 
								 | 
							
									<ol id="qunit-tests"></ol>
							 | 
						||
| 
								 | 
							
									<div id="content">
							 | 
						||
| 
								 | 
							
										<textarea id="elm1" name="elm1"></textarea>
							 | 
						||
| 
								 | 
							
									</div>
							 | 
						||
| 
								 | 
							
									<script src="js/jsrobot/robot.js"></script>
							 | 
						||
| 
								 | 
							
									<script>
							 | 
						||
| 
								 | 
							
										initWhenTinyAndRobotAreReady(initTinyFunction);
							 | 
						||
| 
								 | 
							
									</script>
							 | 
						||
| 
								 | 
							
								</body>
							 | 
						||
| 
								 | 
							
								</html>
							 |