Bug 1390046: Fix test fail. r?hiro draft
authorDaisuke Akatsuka <dakatsuka@mozilla.com>
Fri, 18 Aug 2017 14:12:54 +0900
changeset 648652 68a832a14f8e6bc619e0b8c5806028902d86b5fd
parent 648650 497db81038440ea812547145c0a3ec162cbbdaac
child 726899 af27b3cfc29b0f9c535dd854abfee13ce992b628
push id74838
push userbmo:dakatsuka@mozilla.com
push dateFri, 18 Aug 2017 05:13:07 +0000
reviewershiro
bugs1390046
milestone57.0a1
Bug 1390046: Fix test fail. r?hiro In Servo, the max value for 'translate' is different from normal float since is using Au ( AppUnit ). The value which we introduced as MAX_AU_PX ( 1.78957e+7 ) in this test is calculated by following mechanis. 1. Like this time, if the value is larger than max float, stored into specified value as infinity by parsing. 2. Then, when converts to the computed value Au from the specified value (infinity), ABSOLUTE_LENGTH_MAX (1 << 30) = 1073741824 stores into the Au. [1] 3. Finally, when get the PX value, returns the value which devided by AU_PER_PX ( 60 ). This value is 1.78957e+7. [1] to_au_round() method https://searchfox.org/mozilla-central/source/servo/components/style/values/specified/length.rs#249 MozReview-Commit-ID: BVfDhOKXaWw
dom/animation/test/mozilla/file_transform_limits.html
--- a/dom/animation/test/mozilla/file_transform_limits.html
+++ b/dom/animation/test/mozilla/file_transform_limits.html
@@ -2,54 +2,56 @@
 <meta charset=utf-8>
 <script src="../testcommon.js"></script>
 <body>
 <script>
 'use strict';
 
 // We clamp +infinity or -inifinity value in floating point to
 // maximum floating point value or -maximum floating point value.
-const max_float = 3.40282e+38;
+const MAX_FLOAT = 3.40282e+38;
+const MAX_AU_PX = "1.78957e+7";
+const MAX_TRANSLATE_COMPONENT = isStyledByServo() ? MAX_AU_PX : MAX_FLOAT;
 
 test(function(t) {
   var div = addDiv(t);
   div.style = "width: 1px; height: 1px;";
   var anim = div.animate([ { transform: 'scale(1)' },
                            { transform: 'scale(3.5e+38)'},
                            { transform: 'scale(3)' } ], 100 * MS_PER_SEC);
 
   anim.pause();
   anim.currentTime = 50 * MS_PER_SEC;
   assert_equals(getComputedStyle(div).transform,
-                'matrix(' + max_float + ', 0, 0, ' + max_float + ', 0, 0)');
+                'matrix(' + MAX_FLOAT + ', 0, 0, ' + MAX_FLOAT + ', 0, 0)');
 }, 'Test that the parameter of transform scale is clamped' );
 
 test(function(t) {
   var div = addDiv(t);
   div.style = "width: 1px; height: 1px;";
   var anim = div.animate([ { transform: 'translate(1px)' },
                            { transform: 'translate(3.5e+38px)'},
                            { transform: 'translate(3px)' } ], 100 * MS_PER_SEC);
 
   anim.pause();
   anim.currentTime = 50 * MS_PER_SEC;
   assert_equals(getComputedStyle(div).transform,
-                'matrix(1, 0, 0, 1, ' + max_float + ', 0)');
+                'matrix(1, 0, 0, 1, ' + MAX_TRANSLATE_COMPONENT + ', 0)');
 }, 'Test that the parameter of transform translate is clamped' );
 
 test(function(t) {
   var div = addDiv(t);
   div.style = "width: 1px; height: 1px;";
   var anim = div.animate([ { transform: 'matrix(0.5, 0, 0, 0.5, 0, 0)' },
                            { transform: 'matrix(2, 0, 0, 2, 3.5e+38, 0)'},
                            { transform: 'matrix(0, 2, 0, -2, 0, 0)' } ],
                          100 * MS_PER_SEC);
 
   anim.pause();
   anim.currentTime = 50 * MS_PER_SEC;
   assert_equals(getComputedStyle(div).transform,
-                'matrix(2, 0, 0, 2, ' + max_float + ', 0)');
+                'matrix(2, 0, 0, 2, ' + MAX_FLOAT + ', 0)');
 }, 'Test that the parameter of transform matrix is clamped' );
 
 done();
 
 </script>
 </body>