writer-create-available.tentative.https.window.js (3690B)
1 // META: title=Writer Create Available 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 const writer = await createWriter(); 10 assert_true(writer instanceof Writer); 11 12 assert_equals(typeof writer.write, 'function'); 13 assert_equals(typeof writer.writeStreaming, 'function'); 14 assert_equals(typeof writer.measureInputUsage, 'function'); 15 assert_equals(typeof writer.destroy, 'function'); 16 17 assert_equals(typeof writer.expectedContextLanguages, 'object'); 18 assert_equals(typeof writer.expectedInputLanguages, 'object'); 19 assert_equals(typeof writer.inputQuota, 'number'); 20 assert_equals(typeof writer.outputLanguage, 'object'); 21 assert_equals(typeof writer.sharedContext, 'string'); 22 23 assert_equals(typeof writer.tone, 'string'); 24 assert_equals(typeof writer.format, 'string'); 25 assert_equals(typeof writer.length, 'string'); 26 27 assert_equals(writer.tone, 'neutral'); 28 assert_equals(writer.format, 'plain-text'); 29 assert_equals(writer.length, 'short'); 30 }, 'Writer.create() returns a valid object with default options'); 31 32 promise_test(async () => { 33 await testMonitor(createWriter); 34 }, 'Writer.create() notifies its monitor on downloadprogress'); 35 36 promise_test(async t => { 37 await testCreateMonitorWithAbort(t, Writer.create); 38 }, 'Progress events are not emitted after aborted'); 39 40 promise_test(async () => { 41 const sharedContext = 'This is a shared context string'; 42 const writer = await createWriter({sharedContext: sharedContext}); 43 assert_equals(writer.sharedContext, sharedContext); 44 }, 'Writer.sharedContext'); 45 46 promise_test(async () => { 47 const writer = await createWriter({tone: 'formal'}); 48 assert_equals(writer.tone, 'formal'); 49 }, 'Creating a Writer with "formal" tone'); 50 51 promise_test(async () => { 52 const writer = await createWriter({tone: 'casual'}); 53 assert_equals(writer.tone, 'casual'); 54 }, 'Creating a Writer with "casual" tone'); 55 56 promise_test(async () => { 57 const writer = await createWriter({format: 'markdown'}); 58 assert_equals(writer.format, 'markdown'); 59 }, 'Creating a Writer with "markdown" format'); 60 61 promise_test(async () => { 62 const writer = await createWriter({length: 'medium'}); 63 assert_equals(writer.length, 'medium'); 64 }, 'Creating a Writer with "medium" length'); 65 66 promise_test(async () => { 67 const writer = await createWriter({length: 'long'}); 68 assert_equals(writer.length, 'long'); 69 }, 'Creating a Writer with "long" length'); 70 71 promise_test(async () => { 72 const writer = await createWriter({expectedInputLanguages: ['en']}); 73 assert_array_equals(writer.expectedInputLanguages, ['en']); 74 }, 'Writer.expectedInputLanguages'); 75 76 promise_test(async () => { 77 const writer = await createWriter({expectedContextLanguages: ['en']}); 78 assert_array_equals(writer.expectedContextLanguages, ['en']); 79 }, 'Writer.expectedContextLanguages'); 80 81 promise_test(async () => { 82 const writer = await createWriter({outputLanguage: 'en'}); 83 assert_equals(writer.outputLanguage, 'en'); 84 }, 'Writer.outputLanguage'); 85 86 promise_test(async (t) => { 87 return promise_rejects_js( 88 t, RangeError, 89 createWriter({expectedInputLanguages: ['en-abc-invalid']})); 90 }, 'Creating Writer with malformed language string'); 91 92 promise_test(async (t) => { 93 let writer = await createWriter({expectedInputLanguages: ['EN']}); 94 assert_true(!!writer); 95 }, 'Writer.create() canonicalizes language tags'); 96 97 promise_test(async () => { 98 const writer = await createWriter({}); 99 assert_equals(writer.expectedInputLanguages, null); 100 assert_equals(writer.expectedContextLanguages, null); 101 assert_equals(writer.outputLanguage, null); 102 }, 'Writer optional attributes return null');