{:uriI" file:///Users/owen/.rvm/gems/ruby-2.3.0/gems/tinymce-rails-4.4.1/vendor/assets/javascripts/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js?type=application/javascript&pipeline=self&id=cda3cb42923bf11f685733bea943820199a10725370b25dc42df239fdf809123:ET:load_pathI"X/Users/owen/.rvm/gems/ruby-2.3.0/gems/tinymce-rails-4.4.1/vendor/assets/javascripts;T: filenameI"/Users/owen/.rvm/gems/ruby-2.3.0/gems/tinymce-rails-4.4.1/vendor/assets/javascripts/tinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.js;T: nameI"Btinymce/themes/inlite/src/test/js/browser/core/ElementMatcher;T:logical_pathI"Jtinymce/themes/inlite/src/test/js/browser/core/ElementMatcher.self.js;T:content_typeI"application/javascript;T:sourceI"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, '
a
', 'p'), sParentTest(tinyApis, editor, 'a