@@ -7,12 +7,12 @@ suite('apply-preserving-inline-style', function() {
7
7
this . svgContainer = document . createElementNS (
8
8
'http://www.w3.org/2000/svg' , 'svg' ) ;
9
9
document . documentElement . appendChild ( this . svgContainer ) ;
10
- window . _webAnimationsUpdateSvgTransformAttr = null ;
10
+ delete window . _webAnimationsUpdateSvgTransformAttr ;
11
11
} ) ;
12
12
teardown ( function ( ) {
13
13
document . documentElement . removeChild ( this . element ) ;
14
14
document . documentElement . removeChild ( this . svgContainer ) ;
15
- window . _webAnimationsUpdateSvgTransformAttr = null ;
15
+ delete window . _webAnimationsUpdateSvgTransformAttr ;
16
16
} ) ;
17
17
18
18
test ( 'Style is patched' , function ( ) {
@@ -76,40 +76,45 @@ suite('apply-preserving-inline-style', function() {
76
76
assert . equal ( this . style . length , 1 ) ;
77
77
} ) ;
78
78
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 ) ;
83
88
}
84
89
// Unknown data: assume that transforms supported.
85
- assert . equal ( updateSvgTransformAttr ( win ) , false ) ;
90
+ check ( '' , false ) ;
86
91
// 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)' +
88
93
' 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) ' +
93
98
'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 ) ;
96
101
// 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 ) ;
100
105
// 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 ) ;
104
109
// 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' +
106
111
' (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 ) ;
109
114
// 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 ) ;
113
118
} ) ;
114
119
test ( 'Set and clear transform' , function ( ) {
115
120
// This is not an SVG element, so CSS transform support is not consulted.
@@ -139,7 +144,7 @@ suite('apply-preserving-inline-style', function() {
139
144
assert . equal ( getComputedStyle ( svgElement ) . transform , 'none' ) ;
140
145
assert . equal ( svgElement . hasAttribute ( 'transform' ) , false ) ;
141
146
} ) ;
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 ( ) {
143
148
window . _webAnimationsUpdateSvgTransformAttr = true ;
144
149
var svgElement = document . createElementNS ( 'http://www.w3.org/2000/svg' , 'rect' ) ;
145
150
ensureStyleIsPatched ( svgElement ) ;
@@ -155,7 +160,7 @@ suite('apply-preserving-inline-style', function() {
155
160
assert . equal ( getComputedStyle ( svgElement ) . transform , 'none' ) ;
156
161
assert . equal ( svgElement . getAttribute ( 'transform' ) , null ) ;
157
162
} ) ;
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 ( ) {
159
164
window . _webAnimationsUpdateSvgTransformAttr = true ;
160
165
var svgElement = document . createElementNS ( 'http://www.w3.org/2000/svg' , 'rect' ) ;
161
166
ensureStyleIsPatched ( svgElement ) ;
@@ -168,7 +173,7 @@ suite('apply-preserving-inline-style', function() {
168
173
svgElement . style . _clear ( 'msTransform' ) ;
169
174
assert . equal ( svgElement . getAttribute ( 'transform' ) , null ) ;
170
175
} ) ;
171
- test ( 'Restore NOT supported transform on SVG element' , function ( ) {
176
+ test ( 'Restore transform CSS property not supported on SVG element' , function ( ) {
172
177
window . _webAnimationsUpdateSvgTransformAttr = true ;
173
178
var svgElement = document . createElementNS ( 'http://www.w3.org/2000/svg' , 'rect' ) ;
174
179
svgElement . setAttribute ( 'transform' , 'matrix(2 0 0 2 0 0)' ) ;
0 commit comments