Skip to content

Commit af716df

Browse files
committed
merge latest manifest/display tests.
1 parent 23fd592 commit af716df

File tree

1 file changed

+79
-14
lines changed

1 file changed

+79
-14
lines changed

lighthouse-core/test/manifest-parser-test.js

Lines changed: 79 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ describe('Manifest Parser', function() {
3333
assert.equal(parsedManifest.value.name.value, undefined);
3434
assert.equal(parsedManifest.value.short_name.value, undefined);
3535
assert.equal(parsedManifest.value.start_url.value, undefined);
36-
assert.equal(parsedManifest.value.display.value, undefined);
36+
assert.equal(parsedManifest.value.display.value, 'browser');
3737
assert.equal(parsedManifest.value.orientation.value, undefined);
3838
assert.equal(parsedManifest.value.theme_color.value, undefined);
3939
assert.equal(parsedManifest.value.background_color.value, undefined);
@@ -43,19 +43,6 @@ describe('Manifest Parser', function() {
4343
// prefer_related_applications
4444
});
4545

46-
it('accepts unknown values', function() {
47-
// TODO(bckenny): this is the same exact test as above
48-
let parsedManifest = manifestParser('{}');
49-
assert(!parsedManifest.debugString);
50-
assert.equal(parsedManifest.value.name.value, undefined);
51-
assert.equal(parsedManifest.value.short_name.value, undefined);
52-
assert.equal(parsedManifest.value.start_url.value, undefined);
53-
assert.equal(parsedManifest.value.display.value, undefined);
54-
assert.equal(parsedManifest.value.orientation.value, undefined);
55-
assert.equal(parsedManifest.value.theme_color.value, undefined);
56-
assert.equal(parsedManifest.value.background_color.value, undefined);
57-
});
58-
5946
describe('icon parsing', function() {
6047
it('parses basic string', function() {
6148
let parsedManifest = manifestParser('{"icons": [{"src": "192.png", "sizes": "192x192"}]}');
@@ -131,4 +118,82 @@ describe('Manifest Parser', function() {
131118
assert.equal(parsedManifest.value.short_name.value, undefined);
132119
});
133120
});
121+
122+
/**
123+
* @see https://w3c.github.io/manifest/#display-member
124+
*/
125+
describe('display parsing', () => {
126+
it('falls back to \'browser\' and issues a warning for an invalid value', () => {
127+
const parsedManifest = manifestParser('{"display": {} }');
128+
const display = parsedManifest.value.display;
129+
assert.ok(display.debugString);
130+
assert.equal(display.value, 'browser');
131+
});
132+
133+
it('falls back to \'browser\' and issues a warning for an invalid value', () => {
134+
const parsedManifest = manifestParser('{"display": 5 }');
135+
const display = parsedManifest.value.display;
136+
assert.ok(display.debugString);
137+
assert.equal(display.value, 'browser');
138+
});
139+
140+
it('falls back to \'browser\' and issues no warning when undefined', () => {
141+
const parsedManifest = manifestParser('{}');
142+
const display = parsedManifest.value.display;
143+
assert.ok(!display.debugString);
144+
assert.equal(display.value, 'browser');
145+
assert.equal(display.rawValue, undefined);
146+
});
147+
148+
it('trims whitespace', () => {
149+
const displayValue = ' fullscreen ';
150+
const parsedManifest = manifestParser(`{"display": "${displayValue}" }`);
151+
const display = parsedManifest.value.display;
152+
assert.ok(!display.debugString);
153+
assert.equal(display.value, 'fullscreen');
154+
});
155+
156+
it('converts to lowercase', () => {
157+
const displayValue = 'fUlLScrEEn';
158+
const parsedManifest = manifestParser(`{"display": "${displayValue}" }`);
159+
const display = parsedManifest.value.display;
160+
assert.ok(!display.debugString);
161+
assert.equal(display.value, 'fullscreen');
162+
});
163+
164+
it('falls back to \'browser\' and issues a warning when a non-existent mode', () => {
165+
const parsedManifest = manifestParser('{"display": "fullestscreen" }');
166+
const display = parsedManifest.value.display;
167+
assert.ok(display.debugString);
168+
assert.equal(display.value, 'browser');
169+
});
170+
171+
it('correctly parses `fullscreen` display mode', () => {
172+
const parsedManifest = manifestParser('{"display": "fullscreen" }');
173+
const display = parsedManifest.value.display;
174+
assert.ok(!display.debugString);
175+
assert.equal(display.value, 'fullscreen');
176+
});
177+
178+
it('correctly parses `standalone` display mode', () => {
179+
const parsedManifest = manifestParser('{"display": "standalone" }');
180+
const display = parsedManifest.value.display;
181+
assert.ok(!display.debugString);
182+
assert.equal(display.value, 'standalone');
183+
});
184+
185+
it('correctly parses `minimal-ui` display mode', () => {
186+
const parsedManifest = manifestParser('{"display": "minimal-ui" }');
187+
const display = parsedManifest.value.display;
188+
assert.ok(!display.debugString);
189+
assert.equal(display.value, 'minimal-ui');
190+
});
191+
192+
it('correctly parses `browser` display mode', () => {
193+
const parsedManifest = manifestParser('{"display": "browser" }');
194+
const display = parsedManifest.value.display;
195+
assert.ok(!display.debugString);
196+
assert.equal(display.value, 'browser');
197+
});
198+
});
134199
});

0 commit comments

Comments
 (0)