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..8bae1d446b65d764e81ae933db9fef8586688351 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) { |
+ if (faces.length == 0) { |
+ callbackArgs = arguments; |
+ thisValue = this; |
+ shouldBeType('callbackArgs[0]', 'FontFace'); |
+ shouldBeTrue('callbackArgs[1] === faces.length'); |
+ 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'); |