Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/fast/css/fontfaceset-set-operations.html |
| diff --git a/third_party/WebKit/LayoutTests/fast/css/fontfaceset-set-operations.html b/third_party/WebKit/LayoutTests/fast/css/fontfaceset-set-operations.html |
| index 48c2fa090aed9460275d69ec5cde536be9ce6831..b059275573ce6539f25fd9680c8f23b5741bd2c6 100644 |
| --- a/third_party/WebKit/LayoutTests/fast/css/fontfaceset-set-operations.html |
| +++ b/third_party/WebKit/LayoutTests/fast/css/fontfaceset-set-operations.html |
| @@ -20,23 +20,10 @@ |
| <script> |
| description('Tests Set operations of FontFaceSet.'); |
| -function runTests() { |
| - nonCssConnectedFace = new FontFace("MyFont", "local(Arial)", {}); |
| - |
| - shouldBe('document.fonts.size', '3'); |
| +thisArg = {}; |
| +faces = [] |
| - thisArg = {}; |
| - faces = []; |
| - document.fonts.forEach(function(face, faceAgain, set) { |
| - if (faces.length == 0) { |
| - callbackArgs = arguments; |
| - thisValue = this; |
| - shouldBeTrue('callbackArgs[0] === callbackArgs[1]'); |
| - shouldBeTrue('callbackArgs[2] === document.fonts'); |
| - shouldBeTrue('thisValue === thisArg'); |
| - } |
| - faces.push(face); |
| - }, thisArg); |
| +function checkResults() { |
| shouldBe('faces.length', '3'); |
| shouldBeEqualToString('faces[0].family', 'Font1'); |
| @@ -51,6 +38,48 @@ function runTests() { |
| shouldThrow('document.fonts.add(faces[0])', '"InvalidModificationError: Failed to execute \'add\' on \'FontFaceSet\': Cannot add a CSS-connected FontFace."'); |
| shouldThrow('document.fonts.delete(faces[0])', '"InvalidModificationError: Failed to execute \'delete\' on \'FontFaceSet\': Cannot delete a CSS-connected FontFace."'); |
| +} |
| + |
| +function callback(face, index, set) { |
|
Kunihiko Sakamoto
2015/10/16 09:50:07
Second parameter is no longer an index.
Takashi Toyoshima
2015/10/16 10:07:03
Done.
|
| + if (faces.length == 0) { |
| + callbackArgs = arguments; |
| + thisValue = this; |
| + shouldBeType('callbackArgs[0]', 'FontFace'); |
| + shouldBeTrue('callbackArgs[0] === callbackArgs[1]'); |
| + shouldBeTrue('callbackArgs[2] === document.fonts'); |
| + shouldBeTrue('thisValue === thisArg'); |
| + } |
| + faces.push(face); |
| +} |
| + |
| +function runTests() { |
| + nonCssConnectedFace = new FontFace("MyFont", "local(Arial)", {}); |
| + |
| + shouldBe('document.fonts.size', '3'); |
| + |
| + debug('check forEach'); |
| + document.fonts.forEach(callback, thisArg); |
| + checkResults(); |
| + |
| + debug('check keys'); |
| + faces = []; |
| + for (face of document.fonts.keys()) |
| + faces.push(face); |
| + checkResults(); |
| + |
| + debug('check values'); |
| + faces = []; |
| + for (face of document.fonts.values()) |
| + faces.push(face); |
| + checkResults(); |
| + |
| + debug('check entries'); |
| + faces = []; |
| + for (entry of document.fonts.entries()) { |
| + shouldBeTrue('entry[0] === entry[1]'); |
| + faces.push(entry[1]); |
| + } |
| + checkResults(); |
| document.fonts.add(nonCssConnectedFace); |
| shouldBe('document.fonts.size', '4'); |