PageRenderTime 49ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/tests/wpt/css-tests/css-transitions-1_dev/html/properties-value-inherit-003.htm

https://gitlab.com/0072016/0072016-SDK-js-sdk-framework-
HTML | 209 lines | 187 code | 16 blank | 6 comment | 0 complexity | 5a2c04f50e53dada630969818566ed83 MD5 | raw file
  1. <!DOCTYPE html>
  2. <html><head>
  3. <meta charset="utf-8">
  4. <title>CSS Transitions Test: transitioning implicitly inherited property values</title>
  5. <meta content="Test checks that implicitly inherited property values that are transitioned on a parent element don't start a transition" name="assert">
  6. <link href="http://www.w3.org/TR/css3-transitions/#starting" rel="help" title="3. Starting of transitions">
  7. <link href="http://rodneyrehm.de/en/" rel="author" title="Rodney Rehm">
  8. <meta content="dom " name="flags">
  9. <script src="/resources/testharness.js" type="text/javascript"></script>
  10. <script src="/resources/testharnessreport.js" type="text/javascript"></script>
  11. <script src="./support/vendorPrefix.js" type="text/javascript"></script>
  12. <script src="./support/helper.js" type="text/javascript"></script>
  13. <script src="./support/runParallelAsyncHarness.js" type="text/javascript"></script>
  14. <script src="./support/generalParallelTest.js" type="text/javascript"></script>
  15. <script src="./support/properties.js" type="text/javascript"></script>
  16. <style type="text/css">
  17. #offscreen {
  18. position: absolute;
  19. top: -100000px;
  20. left: -100000px;
  21. width: 100000px;
  22. height: 100000px;
  23. }
  24. </style>
  25. <script id="metadata_cache">/*
  26. {
  27. "background-position length-em(em) / values": {},
  28. "background-position length-em(em) / events": {},
  29. "border-top-width length-em(em) / values": {},
  30. "border-top-width length-em(em) / events": {},
  31. "border-right-width length-em(em) / values": {},
  32. "border-right-width length-em(em) / events": {},
  33. "border-bottom-width length-em(em) / values": {},
  34. "border-bottom-width length-em(em) / events": {},
  35. "border-left-width length-em(em) / values": {},
  36. "border-left-width length-em(em) / events": {},
  37. "padding-bottom length-em(em) / values": {},
  38. "padding-bottom length-em(em) / events": {},
  39. "padding-left length-em(em) / values": {},
  40. "padding-left length-em(em) / events": {},
  41. "padding-right length-em(em) / values": {},
  42. "padding-right length-em(em) / events": {},
  43. "padding-top length-em(em) / values": {},
  44. "padding-top length-em(em) / events": {},
  45. "margin-bottom length-em(em) / values": {},
  46. "margin-bottom length-em(em) / events": {},
  47. "margin-left length-em(em) / values": {},
  48. "margin-left length-em(em) / events": {},
  49. "margin-right length-em(em) / values": {},
  50. "margin-right length-em(em) / events": {},
  51. "margin-top length-em(em) / values": {},
  52. "margin-top length-em(em) / events": {},
  53. "height length-em(em) / values": {},
  54. "height length-em(em) / events": {},
  55. "width length-em(em) / values": {},
  56. "width length-em(em) / events": {},
  57. "min-height length-em(em) / values": {},
  58. "min-height length-em(em) / events": {},
  59. "min-width length-em(em) / values": {},
  60. "min-width length-em(em) / events": {},
  61. "max-height length-em(em) / values": {},
  62. "max-height length-em(em) / events": {},
  63. "max-width length-em(em) / values": {},
  64. "max-width length-em(em) / events": {},
  65. "top length-em(em) / values": {},
  66. "top length-em(em) / events": {},
  67. "right length-em(em) / values": {},
  68. "right length-em(em) / events": {},
  69. "bottom length-em(em) / values": {},
  70. "bottom length-em(em) / events": {},
  71. "left length-em(em) / values": {},
  72. "left length-em(em) / events": {},
  73. "line-height length-em(em) / values": {},
  74. "line-height length-em(em) / events": {},
  75. "letter-spacing length-em(em) / values": {},
  76. "letter-spacing length-em(em) / events": {},
  77. "word-spacing length-em(em) / values": {},
  78. "word-spacing length-em(em) / events": {},
  79. "text-indent length-em(em) / values": {},
  80. "text-indent length-em(em) / events": {},
  81. "outline-offset length-em(em) / values": {},
  82. "outline-offset length-em(em) / events": {},
  83. "outline-width length-em(em) / values": {},
  84. "outline-width length-em(em) / events": {},
  85. "vertical-align length-em(em) / values": {},
  86. "vertical-align length-em(em) / events": {}
  87. }
  88. */</script>
  89. </head>
  90. <body>
  91. <!-- required by testharnessreport.js -->
  92. <div id="log"></div>
  93. <!-- elements used for testing -->
  94. <div class="fixture" id="fixture">
  95. <div class="container">
  96. <div class="transition">Text sample</div>
  97. </div>
  98. </div>
  99. <div id="offscreen"></div>
  100. <!--
  101. SEE ./support/README.md for an abstract explanation of the test procedure
  102. http://test.csswg.org/source/contributors/rodneyrehm/submitted/css3-transitions/README.md
  103. -->
  104. <script>
  105. // http://www.w3.org/TR/css3-transitions/#starting
  106. // Implementations also must not start a transition when the computed value changes because
  107. // it is inherited (directly or indirectly) from another element that is transitioning the same property.
  108. // Note: "indirectly" could mean "font-size" on parent, "em-based" on element
  109. // this test takes its time, give it a minute to run
  110. var timeout = 60000;
  111. setup({timeout: timeout});
  112. var tests = getFontSizeRelativePropertyTests();
  113. // for testing, limit to a couple of iterations
  114. // tests = tests.slice(10, 30);
  115. // or filter using one of:
  116. // tests = filterPropertyTests(tests, "background-color color(rgba)");
  117. // tests = filterPropertyTests(tests, ["background-color color(rgba)", ...]);
  118. // tests = filterPropertyTests(tests, /^background-color/);
  119. // general transition-duration
  120. var duration = '0.5s';
  121. runParallelAsyncHarness({
  122. // array of test data
  123. tests: tests,
  124. // the number of tests to run in parallel
  125. testsPerSlice: 50,
  126. // milliseconds to wait before calling teardown and ending test
  127. duration: parseFloat(duration) * 1000,
  128. // the global suite timeout
  129. timeout: timeout,
  130. // prepare individual test
  131. setup: function(data, options) {
  132. // have parent transition the font-size only
  133. var from = extend({}, data.from, {'font-size': '20px'});
  134. delete from[data.property];
  135. var styles = {
  136. // as we're testing inheritance, #fixture is our new parent
  137. '.fixture': data.parentStyle,
  138. '.container': from,
  139. '.container.to': {'font-size': '30px'},
  140. // transition font-size on parent
  141. '.container.how': {transition: 'font-size ' + duration + ' linear 0s'},
  142. '.transition': data.from,
  143. '.transition.to' : {},
  144. // transition font-size dependent property on child
  145. '.transition.how' : {transition: addVendorPrefix(data.property) + ' ' + duration + ' linear 0s'}
  146. };
  147. generalParallelTest.setup(data, options);
  148. generalParallelTest.addStyles(data, options, styles);
  149. },
  150. // cleanup after individual test
  151. teardown: generalParallelTest.teardown,
  152. // invoked prior to running a slice of tests
  153. sliceStart: generalParallelTest.sliceStart,
  154. // invoked after running a slice of tests
  155. sliceDone: generalParallelTest.sliceDone,
  156. // test cases, make them as granular as possible
  157. cases: {
  158. // test property values while transitioning
  159. // values.start kicks off a transition
  160. 'values': {
  161. // run actual test, assertions can be used here!
  162. start: function(test, data, options) {
  163. // identify initial and target values
  164. generalParallelTest.getStyle(data);
  165. // make sure values differ, if they don't, the property could most likely not be parsed
  166. assert_not_equals(data.transition.from, data.transition.to, "initial and target values may not match");
  167. // kick off the transition
  168. generalParallelTest.startTransition(data);
  169. // make sure we didn't get the target value immediately.
  170. // If we did, there wouldn't be a transition!
  171. var current = data.transition.computedStyle(data.property);
  172. assert_not_equals(current, data.transition.to, "must not be target value after start");
  173. },
  174. done: function(test, data, options) {
  175. // make sure the property's value were neither initial nor target while transitioning
  176. test.step(generalParallelTest.assertIntermediateValuesFunc(data, 'transition'));
  177. }
  178. },
  179. // test TransitionEnd events
  180. 'events': {
  181. done: function(test, data, options) {
  182. // make sure there were no events on parent
  183. test.step(generalParallelTest.assertExpectedEventsFunc(data, 'container', "font-size:" + duration));
  184. // make sure we got the event for the tested property only
  185. test.step(generalParallelTest.assertExpectedEventsFunc(data, 'transition', ""));
  186. }
  187. }
  188. },
  189. // called once all tests are done
  190. done: generalParallelTest.done
  191. });
  192. </script>
  193. </body></html>