PageRenderTime 43ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/dev/tests/js/testsuite/mage/design_editor/page-test.js

https://bitbucket.org/jokusafet/magento2
JavaScript | 246 lines | 143 code | 3 blank | 100 comment | 9 complexity | b4335acd951bce0eeeb9522217587757 MD5 | raw file
  1. /**
  2. * Magento
  3. *
  4. * NOTICE OF LICENSE
  5. *
  6. * This source file is subject to the Academic Free License (AFL 3.0)
  7. * that is bundled with this package in the file LICENSE_AFL.txt.
  8. * It is also available through the world-wide-web at this URL:
  9. * http://opensource.org/licenses/afl-3.0.php
  10. * If you did not receive a copy of the license and are unable to
  11. * obtain it through the world-wide-web, please send an email
  12. * to license@magentocommerce.com so we can send you a copy immediately.
  13. *
  14. * DISCLAIMER
  15. *
  16. * Do not edit or add to this file if you wish to upgrade Magento to newer
  17. * versions in the future. If you wish to customize Magento for your
  18. * needs please refer to http://www.magentocommerce.com for more information.
  19. *
  20. * @category mage.design_editor
  21. * @package test
  22. * @copyright Copyright (c) 2012 X.commerce, Inc. (http://www.magentocommerce.com)
  23. * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
  24. */
  25. PageTest = TestCase('PageTest');
  26. PageTest.prototype.testInit = function() {
  27. var page = jQuery('body').vde_page();
  28. assertEquals(true, page.is(':vde-vde_page'));
  29. page.vde_page('destroy');
  30. };
  31. PageTest.prototype.testDefaultOptions = function() {
  32. var page = jQuery('body').vde_page();
  33. assertEquals('.vde_element_wrapper.vde_container', page.vde_page('option', 'containerSelector'));
  34. assertEquals('#vde_toolbar', page.vde_page('option', 'panelSelector'));
  35. assertEquals('.vde_element_wrapper', page.vde_page('option', 'highlightElementSelector'));
  36. assertEquals('.vde_element_title', page.vde_page('option', 'highlightElementTitleSelector'));
  37. assertEquals('#vde_highlighting', page.vde_page('option', 'highlightCheckboxSelector'));
  38. assertEquals('vde_highlighting', page.vde_page('option', 'cookieHighlightingName'));
  39. page.vde_page('destroy');
  40. };
  41. PageTest.prototype.testInitContainers = function() {
  42. /*:DOC += <div class="vde_element_wrapper vde_container"></div> */
  43. var page = jQuery('body').vde_page();
  44. var containerSelector = page.vde_page('option', 'containerSelector');
  45. assertEquals(true, jQuery(containerSelector).is(':vde-vde_container'));
  46. page.vde_page('destroy');
  47. }
  48. PageTest.prototype.testInitPanel = function() {
  49. /*:DOC += <div id="vde_toolbar"></div> */
  50. var page = jQuery('body').vde_page();
  51. var panelSelector = page.vde_page('option', 'panelSelector');
  52. assertEquals(true, jQuery(panelSelector).is(':vde-vde_panel'));
  53. page.vde_page('destroy');
  54. }
  55. PageTest.prototype.testInitHighlighting = function() {
  56. /*:DOC += <div id="vde_toolbar"><div id="vde_highlighting"></div></div> */
  57. var page = jQuery('body').vde_page();
  58. var highlightCheckboxSelector = page.vde_page('option', 'highlightCheckboxSelector');
  59. assertEquals(true, jQuery(highlightCheckboxSelector).is(':vde-vde_checkbox'));
  60. page.vde_page('destroy');
  61. }
  62. PageTest.prototype.testProcessMarkers = function() {
  63. /*:DOC +=
  64. <div>
  65. <div id="vde_element_1" class="vde_element_wrapper vde_container vde_wrapper_hidden">
  66. <div class="vde_element_title">Title 1</div>
  67. </div>
  68. <!--start_vde_element_1-->
  69. <div id="vde_element_2" class="vde_element_wrapper vde_draggable vde_wrapper_hidden">
  70. <div class="vde_element_title">Title 2</div>
  71. </div>
  72. <!--start_vde_element_2-->
  73. <div class="block block-list">
  74. <div class="block-title">
  75. <strong><span>Block Title</span></strong>
  76. </div>
  77. <div class="block-content">
  78. <p class="empty">Block Content</p>
  79. </div>
  80. </div>
  81. <!--end_vde_element_2-->
  82. <!--end_vde_element_1-->
  83. </div>
  84. */
  85. var page = jQuery('body').vde_page();
  86. var cookieHighlightingName = page.vde_page('option', 'cookieHighlightingName');
  87. page.vde_page('destroy');
  88. $.mage.cookies.set(cookieHighlightingName, 'off');
  89. page = jQuery('body').vde_page();
  90. var commentsExist = false;
  91. jQuery('*').contents().each(function () {
  92. if (this.nodeType == Node.COMMENT_NODE) {
  93. if (this.data.substr(0, 9) == 'start_vde') {
  94. commentsExist = true;
  95. } else if (this.data.substr(0, 7) == 'end_vde') {
  96. commentsExist = true;
  97. }
  98. }
  99. });
  100. assertEquals(false, commentsExist);
  101. }
  102. PageTest.prototype.testHighlight = function() {
  103. /*:DOC +=
  104. <div>
  105. <div id="vde_element_1" class="vde_element_wrapper vde_container vde_wrapper_hidden">
  106. <div class="vde_element_title">Title 1</div>
  107. </div>
  108. <!--start_vde_element_1-->
  109. <div id="vde_element_2" class="vde_element_wrapper vde_draggable vde_wrapper_hidden">
  110. <div class="vde_element_title">Title 2</div>
  111. </div>
  112. <!--start_vde_element_2-->
  113. <div class="block block-list" id="block">
  114. <div class="block-title">
  115. <strong><span>Block Title</span></strong>
  116. </div>
  117. <div class="block-content">
  118. <p class="empty">Block Content</p>
  119. </div>
  120. </div>
  121. <!--end_vde_element_2-->
  122. <div id="vde_element_3" class="vde_element_wrapper vde_draggable vde_wrapper_hidden">
  123. <div class="vde_element_title">Title 3</div>
  124. </div>
  125. <!--end_vde_element_1-->
  126. </div>
  127. */
  128. jQuery.fx.off = true;
  129. var page = jQuery('body').vde_page();
  130. var cookieHighlightingName = page.vde_page('option', 'cookieHighlightingName');
  131. page.vde_page('destroy');
  132. $.mage.cookies.set(cookieHighlightingName, 'off');
  133. page = jQuery('body').vde_page();
  134. page.trigger('checked.vde_checkbox');
  135. var resultHierarchy = {
  136. vde_element_1: ['vde_element_2', 'vde_element_3'],
  137. vde_element_2: ['block']
  138. }
  139. var hierarchyIsCorrect = true;
  140. jQuery.each(resultHierarchy, function(parentKey, parentVal) {
  141. jQuery.each(parentVal, function(childKey, childVal) {
  142. if (!jQuery('#' + parentKey).has(jQuery('#' + childVal))) {
  143. hierarchyIsCorrect = false;
  144. }
  145. })
  146. });
  147. assertEquals(true, hierarchyIsCorrect);
  148. assertEquals(true, jQuery('.vde_wrapper_hidden').is(':visible'));
  149. assertEquals(null, $.mage.cookies.get(cookieHighlightingName));
  150. var highlightElementTitleSelector = page.vde_page('option', 'highlightElementTitleSelector');
  151. assertEquals(true, jQuery(highlightElementTitleSelector).is(':visible'));
  152. page.vde_page('destroy');
  153. jQuery.fx.off = false;
  154. }
  155. PageTest.prototype.testUnhighlight = function() {
  156. /*:DOC +=
  157. <div>
  158. <div id="vde_element_1" class="vde_element_wrapper vde_container">
  159. <div class="vde_element_title">Title 1</div>
  160. <div id="vde_element_2" class="vde_element_wrapper vde_draggable">
  161. <div class="vde_element_title">Title 2</div>
  162. <div class="block block-list block-compare" id="block">
  163. <div class="block-title">
  164. <strong><span>Block Title</span></strong>
  165. </div>
  166. <div class="block-content">
  167. <p class="empty">Block Content</p>
  168. </div>
  169. </div>
  170. </div>
  171. </div>
  172. </div>
  173. */
  174. jQuery.fx.off = true;
  175. var page = jQuery('body').vde_page();
  176. var highlightElementTitleSelector = page.vde_page('option', 'highlightElementTitleSelector');
  177. var highlightElementSelector = page.vde_page('option', 'highlightElementSelector');
  178. var hierarchy = {};
  179. jQuery(highlightElementSelector).each(function() {
  180. var elem = jQuery(this);
  181. hierarchy[elem.attr('id')] = elem.contents(':not(' + highlightElementTitleSelector + ')');
  182. })
  183. var cookieHighlightingName = page.vde_page('option', 'cookieHighlightingName');
  184. page.vde_page('destroy');
  185. $.mage.cookies.clear(cookieHighlightingName);
  186. page = jQuery('body').vde_page();
  187. page.trigger('unchecked.vde_checkbox');
  188. var hierarchyIsCorrect = true;
  189. jQuery.each(hierarchy, function(parentKey, parentVal) {
  190. jQuery.each(parentVal, function() {
  191. if (jQuery(this).parents('#' + parentKey).size()) {
  192. hierarchyIsCorrect = false;
  193. }
  194. })
  195. });
  196. assertEquals(true, hierarchyIsCorrect);
  197. assertEquals(false, jQuery('.vde_wrapper_hidden').is(':visible'));
  198. assertEquals('off', $.mage.cookies.get(cookieHighlightingName));
  199. assertEquals(false, jQuery(highlightElementTitleSelector).is(':visible'));
  200. page.vde_page('destroy');
  201. jQuery.fx.off = false;
  202. }
  203. PageTest.prototype.testInitHistory = function() {
  204. var page = jQuery('body').vde_page();
  205. assertEquals(true, jQuery(window).is(':vde-vde_history'));
  206. page.vde_page('destroy');
  207. }
  208. PageTest.prototype.testInitHistoryToolbar = function() {
  209. /*:DOC += <div class="vde_history_toolbar"></div> */
  210. jQuery(window).vde_page();
  211. var container = jQuery('.vde_history_toolbar');
  212. assertEquals(true, container.is(':vde-vde_historyToolbar'));
  213. assertNotNull(container.data('vde_historyToolbar')._history);
  214. jQuery(window).vde_page('destroy');
  215. };
  216. PageTest.prototype.testInitRemoveOperation = function() {
  217. /*:DOC += <div class="vde_element_wrapper"></div> */
  218. jQuery(window).vde_page();
  219. var containers = jQuery('.vde_element_wrapper');
  220. assertEquals(true, containers.is(':vde-vde_removable'));
  221. jQuery(window).vde_page('destroy');
  222. };
  223. PageTest.prototype.testSetHistoryForContainers = function() {
  224. jQuery(window).vde_page();
  225. var containers = jQuery('.vde_element_wrapper.vde_container');
  226. assertNotNull(containers.vde_container('getHistory'));
  227. jQuery(window).vde_page('destroy');
  228. };
  229. PageTest.prototype.testDestroy = function() {
  230. /*:DOC +=
  231. <div id="vde_toolbar"></div>
  232. <div class="vde_history_toolbar"></div>
  233. <div class="vde_element_wrapper vde_container"></div>
  234. */
  235. jQuery(window).vde_page();
  236. jQuery(window).vde_page('destroy');
  237. //check no garbage is left
  238. assertFalse($('#vde_toolbar').is(':vde-vde_panel'));
  239. assertFalse($('.vde_history_toolbar').is(':vde-vde_historyToolbar'));
  240. assertFalse($(window).is(':vde-vde_history'));
  241. assertFalse($('.vde_element_wrapper').is(':vde-vde_removable'));
  242. assertFalse($('.vde_element_wrapper.vde_container').is(':vde-vde_container'));
  243. };