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