summarizer-availability.tentative.https.window.js (1537B)
1 // META: title=Summarizer Availability 2 // META: script=/resources/testdriver.js 3 // META: script=../resources/util.js 4 // META: timeout=long 5 6 'use strict'; 7 8 promise_test(async () => { 9 assert_true(!!Summarizer); 10 assert_equals(typeof Summarizer.availability, 'function'); 11 }, 'Summarizer.availability() is defined'); 12 13 promise_test(async () => { 14 const availability = await Summarizer.availability(); 15 assert_in_array(availability, kValidAvailabilities); 16 }, 'Summarizer.availability() returns a valid value with no options'); 17 18 promise_test(async () => { 19 // An array of plausible test option values. 20 const kCreateOptionsSpec = [ 21 {type: [undefined, 'tldr', 'teaser', 'key-points', 'headline']}, 22 {format: [undefined, 'plain-text', 'markdown']}, 23 {length: [undefined, 'short', 'medium', 'long']}, 24 {expectedInputLanguages: [[], ['en'], ['es'], ['jp', 'fr']]}, 25 {expectedContextLanguages: [[], ['en'], ['es'], ['jp', 'fr']]}, 26 {outputLanguage: [undefined, 'en', 'es', 'jp', 'fr']} 27 ]; 28 for (const options of generateOptionCombinations(kCreateOptionsSpec)) { 29 const availability = await Summarizer.availability(options); 30 assert_in_array(availability, kValidAvailabilities, options); 31 } 32 }, 'Summarizer.availability() returns a valid value with plausible options'); 33 34 promise_test(async (t) => { 35 return promise_rejects_js(t, RangeError, Summarizer.availability({ 36 expectedInputLanguages: ['en-abc-invalid'], // not supported 37 })); 38 }, 'Summarizer.availability() rejects when given invalid language tags');