| // META: script=resources/utils.js |
| // META: script=resources/workaround-for-382640509.js |
| // META: timeout=long |
| |
| promise_test(async () => { |
| // Make sure the session could be created. |
| const capabilities = await ai.languageModel.capabilities(); |
| const status = capabilities.available; |
| // TODO(crbug.com/376789810): make it a PRECONDITION_FAILED if the model is |
| // not ready. |
| assert_true(status !== "no"); |
| // Start a new session. |
| const session = await ai.languageModel.create(); |
| // Make sure there is something to evict. |
| await session.prompt("Please write a sentence in English."); |
| // Register the event listener. |
| const promise = new Promise(resolve => { |
| session.addEventListener("contextoverflow", () => { |
| resolve(true); |
| }); |
| }); |
| const promptString = await getPromptExceedingAvailableTokens(session); |
| session.prompt(promptString); |
| await promise; |
| }, "event listener should be triggered when the context overflows."); |