Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(283)

Unified Diff: LayoutTests/inspector-protocol/layout-fonts/resources/style-matching-test.js

Issue 1256833002: (DO NOT LAND) Test CSS Font Style matching (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « LayoutTests/inspector-protocol/layout-fonts/resources/style-matching.css ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: LayoutTests/inspector-protocol/layout-fonts/resources/style-matching-test.js
diff --git a/LayoutTests/inspector-protocol/layout-fonts/resources/layout-font-test.js b/LayoutTests/inspector-protocol/layout-fonts/resources/style-matching-test.js
similarity index 51%
copy from LayoutTests/inspector-protocol/layout-fonts/resources/layout-font-test.js
copy to LayoutTests/inspector-protocol/layout-fonts/resources/style-matching-test.js
index cc36025e089b76e92b05a4272cee78c1959b9426..126038ab9959fb94fe763ec03fcd3014da8584d2 100644
--- a/LayoutTests/inspector-protocol/layout-fonts/resources/layout-font-test.js
+++ b/LayoutTests/inspector-protocol/layout-fonts/resources/style-matching-test.js
@@ -5,6 +5,14 @@ function test()
var testSelectors = [];
var collectedFontUsage = {};
+ var weights = [ 'onehundred', 'twohundred', 'threehundred',
+ 'fourhundred', 'fivehundred', 'sixhundred',
+ 'sevenhundred', 'eighthundred', 'ninehundred' ]
+
+ var weightsHumanReadable = [ "Thin", "Extra Light", "Light",
+ "Normal", "Medium", "Semi Bold",
+ "Bold", "Extra Bold", "Black" ]
+
InspectorTest.requestDocumentNodeId(onDocumentNodeId);
function onDocumentNodeId(nodeId)
@@ -69,31 +77,63 @@ function test()
}
}
- function collectResults(response)
+ function weightEqual(selectorWeight, fontWeight)
{
- var usedFonts = response.fonts;
- usedFonts.sort(function(a, b) {
- return b.glyphCount - a.glyphCount;
- });
- collectedFontUsage[documentNodeSelector] = usedFonts;
+ return weights.indexOf(selectorWeight) == weightsHumanReadable.indexOf(fontWeight);
}
-};
+ function compareSelectorToFontname(selector, usedFontName)
+ {
+ // A selector of the form "expanded_italic_sixhundred"
+ // needs to be matched to a font name:
+ // "CSSMatchingTest Expanded Italic Semi Bold".
+ var fontStretchStyleWeight = /CSSMatchingTest (\w*) (\w*) (.*)/.exec(usedFontName);
+ var fontStrech = fontStretchStyleWeight[1];
+ var fontStyle = fontStretchStyleWeight[2];
+ var fontWeight = fontStretchStyleWeight[3];
+
+ var selectorStretchStyleWeight = selector.substr(1).split("_");
+ var selectorStrech = selectorStretchStyleWeight[0];
+ var selectorStyle = selectorStretchStyleWeight[1];
+ var selectorWeight = selectorStretchStyleWeight[2];
+
+ var mismatchDescription = "";
+
+ if (fontStrech.toLowerCase() != selectorStrech.toLowerCase()) {
+ mismatchDescription += "Stretch differs, " +
+ "requested vs actual: " +
+ selectorStrech + ", " +
+ fontStrech + "\n";
+ }
+
+ if (fontStyle.toLowerCase() != selectorStyle.toLowerCase()) {
+ mismatchDescription += "Style differs, " +
+ "requested vs actual: " +
+ selectorStyle + ", " +
+ fontStyle + "\n";
+ }
-function formatResult(selector, resultForSelector)
-{
- var resultFormatted = selector + ":\n";
- for (var i = 0; i < resultForSelector.length; i++) {
- resultFormatted += '"' + resultForSelector[i].familyName + '"' +
- " : " +
- resultForSelector[i].glyphCount;
- if (i + 1 < resultForSelector.length)
- resultFormatted += ",\n";
- else
- resultFormatted += "\n\n";
+ if (!weightEqual(selectorWeight, fontWeight)) {
+ mismatchDescription += "Weight differs, " +
+ selectorWeight + ", " +
+ fontWeight + "\n";
+ }
+
+ if (mismatchDescription.length) {
+ mismatchDescription = "FAIL\n" + mismatchDescription;
+ } else {
+ mismatchDescription = "PASS\n";
+ }
+ return mismatchDescription;
}
- return resultFormatted;
-}
+
+ function collectResults(response)
+ {
+ collectedFontUsage[documentNodeSelector] = compareSelectorToFontname(
+ documentNodeSelector,
+ response.fonts[0].familyName);
+ }
+};
function injectCollectedResultsInPage(results)
{
@@ -101,7 +141,7 @@ function injectCollectedResultsInPage(results)
var testNode = document.querySelector(nodeSelector);
var resultElement = document.createElement("div");
var resultTextPre = document.createElement("pre");
- var resultText = formatResult(nodeSelector, results[nodeSelector]);
+ var resultText = nodeSelector + "\n" + results[nodeSelector] + "\n";
var resultTextNode = document.createTextNode(resultText);
resultTextPre.appendChild(resultTextNode);
resultElement.appendChild(resultTextPre);
« no previous file with comments | « LayoutTests/inspector-protocol/layout-fonts/resources/style-matching.css ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698