| Index: third_party/WebKit/LayoutTests/http/tests/webfont/font-display.html
|
| diff --git a/third_party/WebKit/LayoutTests/http/tests/webfont/font-display.html b/third_party/WebKit/LayoutTests/http/tests/webfont/font-display.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..094524227959be95b4ee5d9608c7864ba4832cb6
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/http/tests/webfont/font-display.html
|
| @@ -0,0 +1,67 @@
|
| +<!DOCTYPE html>
|
| +<title>Test for font-display @font-face descriptor</title>
|
| +<style>
|
| +.hidden { display: none; }
|
| +</style>
|
| +<p>Tests how text with a font that takes <i>delay</i> seconds to load look like after <i>T</i> seconds from load start.</p>
|
| +<table id="container">
|
| + <tr>
|
| + <th>T[sec]</th>
|
| + <th>delay[sec]</th>
|
| + <th>auto</th>
|
| + <th>block</th>
|
| + <th>swap</th>
|
| + <th>fallback</th>
|
| + <th>optional</th>
|
| + </tr>
|
| +</table>
|
| +<script>
|
| +if (window.testRunner)
|
| + testRunner.waitUntilDone();
|
| +
|
| +var fontDisplayValues = ['auto', 'block', 'swap', 'fallback', 'optional'];
|
| +var configs = [{time: 0, delay: 1000},
|
| + {time: 1000, delay: 0},
|
| + {time: 1000, delay: 500},
|
| + {time: 1000, delay: 3000},
|
| + {time: 5000, delay: 2000},
|
| + {time: 5000, delay: 4000},
|
| + {time: 5000, delay: 8000}];
|
| +
|
| +function makeFontFaceDeclaration(family, config, display) {
|
| + var url = '/resources/Ahem.ttf';
|
| + if (config.delay > 0)
|
| + url = 'slow-ahem-loading.cgi?delay=' + config.delay + '&t=' + config.time;
|
| + return '@font-face { font-family: ' + family + '; src: url(' + url + '); font-display: ' + display + '; }';
|
| +}
|
| +
|
| +
|
| +var maxTime = Math.max.apply(null, configs.map((config) => config.time));
|
| +var table = document.getElementById('container');
|
| +
|
| +for (var config, i = 0; config = configs[i]; i++) {
|
| + var tr = document.createElement('tr');
|
| + tr.classList.add('hidden');
|
| + var td1 = document.createElement('td');
|
| + td1.textContent = config.time / 1000;
|
| + tr.appendChild(td1);
|
| + var td2 = document.createElement('td');
|
| + td2.textContent = config.delay / 1000;
|
| + tr.appendChild(td2);
|
| +
|
| + for (var display, j = 0; display = fontDisplayValues[j]; j++) {
|
| + var family = [display, config.time, config.delay].join('-');
|
| + var rule = makeFontFaceDeclaration(family, config, display);
|
| + document.styleSheets[0].insertRule(rule, 0);
|
| + var td = document.createElement('td');
|
| + td.textContent = 'a';
|
| + td.style.fontFamily = family + ', Arial';
|
| + tr.appendChild(td);
|
| + }
|
| + table.appendChild(tr);
|
| + setTimeout((function(tr){tr.classList.remove('hidden')}).bind(null, tr), maxTime - config.time);
|
| +}
|
| +
|
| +if (window.testRunner)
|
| + setTimeout(function() { testRunner.notifyDone(); }, maxTime);
|
| +</script>
|
|
|