Sha256: 93dd6b83cdb4c7ee7627261cc949c376e2e0d43991a6d7c8ceb5f75bf8a3e95e

Contents?: true

Size: 2 KB

Versions: 41

Compression:

Stored size: 2 KB

Contents

asynctest('browser/core/ElementMatcherTest', [
	'ephox.mcagar.api.TinyLoader',
	'ephox.mcagar.api.TinyApis',
	'ephox.agar.api.Step',
	'ephox.agar.api.Assertions',
	'tinymce/inlite/core/ElementMatcher',
	'tinymce/inlite/core/PredicateId',
	'ephox.agar.api.Pipeline'
], function (TinyLoader, TinyApis, Step, Assertions, ElementMatcher, PredicateId, Pipeline) {
	var success = arguments[arguments.length - 2];
	var failure = arguments[arguments.length - 1];

	var eq = function (target) {
		return function (elm) {
			return elm === target;
		};
	};

	var constantFalse = function (/*elm*/) {
		return false;
	};

	var sElementTest = function (tinyApis, editor, inputHtml, selector) {
		return Step.sync(function () {
			var target, result;

			editor.setContent(inputHtml);
			target = editor.dom.select(selector)[0];

			result = ElementMatcher.element(target, [
				PredicateId.create('a', constantFalse),
				PredicateId.create('b', eq(target))
			])(editor);

			Assertions.assertEq(result.id, 'b', 'Should be matching B');
			Assertions.assertEq(result.rect.w > 0, true, 'Should be have width');
		});
	};

	var sParentTest = function (tinyApis, editor, inputHtml, selector) {
		return Step.sync(function () {
			var target, parents, result;

			editor.setContent(inputHtml);
			target = editor.dom.select(selector)[0];
			parents = editor.dom.getParents(target);

			result = ElementMatcher.parent(parents, [
				PredicateId.create('a', constantFalse),
				PredicateId.create('b', eq(parents[1])),
				PredicateId.create('c', eq(parents[0]))
			])(editor);

			Assertions.assertEq(result.id, 'c', 'Should be matching C the closest one');
			Assertions.assertEq(result.rect.w > 0, true, 'Should be have width');
		});
	};

	TinyLoader.setup(function (editor, onSuccess, onFailure) {
		var tinyApis = TinyApis(editor);

		Pipeline.async({}, [
			sElementTest(tinyApis, editor, '<p>a</p>', 'p'),
			sParentTest(tinyApis, editor, '<div><p><em>a</em></p></div>', 'em')
		], onSuccess, onFailure);
	}, {
		inline: true
	}, success, failure);
});

Version data entries

41 entries across 41 versions & 2 rubygems

Version Path
wbase-0.3.20 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js
wbase-0.3.19 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js
wbase-0.3.18 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js
wbase-0.3.17 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js
wbase-0.3.16 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js
wbase-0.3.15 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js
wbase-0.3.14 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js
wbase-0.3.13 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js
wbase-0.3.12 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js
wbase-0.3.11 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js
wbase-0.3.10 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js
wbase-0.3.9 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js
wbase-0.3.8 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js
wbase-0.3.7 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js
wbase-0.3.6 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js
wbase-0.3.5 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js
wbase-0.3.4 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js
wbase-0.3.3 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js
wbase-0.3.2 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js
wbase-0.3.1 lib/vendor/admin/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js