@@ -7,12 +7,12 @@ suite('apply-preserving-inline-style', function() {
77 this . svgContainer = document . createElementNS (
88 'http://www.w3.org/2000/svg' , 'svg' ) ;
99 document . documentElement . appendChild ( this . svgContainer ) ;
10- window . _webAnimationsUpdateSvgTransformAttr = null ;
10+ delete window . _webAnimationsUpdateSvgTransformAttr ;
1111 } ) ;
1212 teardown ( function ( ) {
1313 document . documentElement . removeChild ( this . element ) ;
1414 document . documentElement . removeChild ( this . svgContainer ) ;
15- window . _webAnimationsUpdateSvgTransformAttr = null ;
15+ delete window . _webAnimationsUpdateSvgTransformAttr ;
1616 } ) ;
1717
1818 test ( 'Style is patched' , function ( ) {
@@ -76,40 +76,45 @@ suite('apply-preserving-inline-style', function() {
7676 assert . equal ( this . style . length , 1 ) ;
7777 } ) ;
7878 test ( 'Detect SVG transform compatibility' , function ( ) {
79- var win = { navigator : { userAgent : '' } } ;
80- function agent ( str ) {
81- win . _webAnimationsUpdateSvgTransformAttr = null ;
82- win . navigator . userAgent = str ;
79+ var element = document . createElement ( 'div' ) ;
80+ var svgElement = document . createElementNS ( 'http://www.w3.org/2000/svg' , 'rect' ) ;
81+ function check ( userAgent , shouldUpdateSvgTransformAttr ) {
82+ var win = { navigator : { userAgent : userAgent } } ;
83+ // Non-SVG element is never updated.
84+ assert . equal ( updateSvgTransformAttr ( win , element ) , false ) ;
85+ // SVG element may be updated as tested.
86+ assert . equal ( updateSvgTransformAttr ( win , svgElement ) ,
87+ shouldUpdateSvgTransformAttr ) ;
8388 }
8489 // Unknown data: assume that transforms supported.
85- assert . equal ( updateSvgTransformAttr ( win ) , false ) ;
90+ check ( '' , false ) ;
8691 // Chrome: transforms supported.
87- agent ( 'Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E)' +
92+ check ( 'Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E)' +
8893 ' AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.20' +
89- ' Mobile Safari/537.36' ) ;
90- assert . equal ( updateSvgTransformAttr ( win ) , false ) ;
91- // Safary : transforms supported.
92- agent ( 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) ' +
94+ ' Mobile Safari/537.36' ,
95+ false ) ;
96+ // Safari : transforms supported.
97+ check ( 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) ' +
9398 'AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 ' +
94- 'Safari/7046A194A' ) ;
95- assert . equal ( updateSvgTransformAttr ( win ) , false ) ;
99+ 'Safari/7046A194A' ,
100+ false ) ;
96101 // Firefox: transforms supported.
97- agent ( 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) ' +
98- 'Gecko/20100101 Firefox/40.1' ) ;
99- assert . equal ( updateSvgTransformAttr ( win ) , false ) ;
102+ check ( 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) ' +
103+ 'Gecko/20100101 Firefox/40.1' ,
104+ false ) ;
100105 // IE: transforms are NOT supported.
101- agent ( 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 7.0;' +
102- ' InfoPath.3; .NET CLR 3.1.40767; Trident/6.0; en-IN)' ) ;
103- assert . equal ( updateSvgTransformAttr ( win ) , true ) ;
106+ check ( 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 7.0;' +
107+ ' InfoPath.3; .NET CLR 3.1.40767; Trident/6.0; en-IN)' ,
108+ true ) ;
104109 // Edge: transforms are NOT supported.
105- agent ( 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36' +
110+ check ( 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36' +
106111 ' (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36' +
107- ' Edge/12.10136' ) ;
108- assert . equal ( updateSvgTransformAttr ( win ) , true ) ;
112+ ' Edge/12.10136' ,
113+ true ) ;
109114 // ICS Android: transforms are NOT supported.
110- agent ( 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; MZ604 Build/I.7.1-45)' +
111- ' AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' ) ;
112- assert . equal ( updateSvgTransformAttr ( win ) , true ) ;
115+ check ( 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; MZ604 Build/I.7.1-45)' +
116+ ' AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30' ,
117+ true ) ;
113118 } ) ;
114119 test ( 'Set and clear transform' , function ( ) {
115120 // This is not an SVG element, so CSS transform support is not consulted.
@@ -139,7 +144,7 @@ suite('apply-preserving-inline-style', function() {
139144 assert . equal ( getComputedStyle ( svgElement ) . transform , 'none' ) ;
140145 assert . equal ( svgElement . hasAttribute ( 'transform' ) , false ) ;
141146 } ) ;
142- test ( 'Set and clear NOT supported transform on SVG element' , function ( ) {
147+ test ( 'Set and clear transform CSS property not supported on SVG element' , function ( ) {
143148 window . _webAnimationsUpdateSvgTransformAttr = true ;
144149 var svgElement = document . createElementNS ( 'http://www.w3.org/2000/svg' , 'rect' ) ;
145150 ensureStyleIsPatched ( svgElement ) ;
@@ -155,7 +160,7 @@ suite('apply-preserving-inline-style', function() {
155160 assert . equal ( getComputedStyle ( svgElement ) . transform , 'none' ) ;
156161 assert . equal ( svgElement . getAttribute ( 'transform' ) , null ) ;
157162 } ) ;
158- test ( 'Set and clear NOT supported prefixed transform on SVG element' , function ( ) {
163+ test ( 'Set and clear prefixed transform CSS property not supported on SVG element' , function ( ) {
159164 window . _webAnimationsUpdateSvgTransformAttr = true ;
160165 var svgElement = document . createElementNS ( 'http://www.w3.org/2000/svg' , 'rect' ) ;
161166 ensureStyleIsPatched ( svgElement ) ;
@@ -168,7 +173,7 @@ suite('apply-preserving-inline-style', function() {
168173 svgElement . style . _clear ( 'msTransform' ) ;
169174 assert . equal ( svgElement . getAttribute ( 'transform' ) , null ) ;
170175 } ) ;
171- test ( 'Restore NOT supported transform on SVG element' , function ( ) {
176+ test ( 'Restore transform CSS property not supported on SVG element' , function ( ) {
172177 window . _webAnimationsUpdateSvgTransformAttr = true ;
173178 var svgElement = document . createElementNS ( 'http://www.w3.org/2000/svg' , 'rect' ) ;
174179 svgElement . setAttribute ( 'transform' , 'matrix(2 0 0 2 0 0)' ) ;
0 commit comments