| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>Toast: showToast tests</title> |
| |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| |
| <body> |
| </body> |
| |
| <script type="module"> |
| import { showToast, StdToastElement } from 'std:elements/toast'; |
| import { testShowToast, assertToastNotShown, assertToastShown } from './resources/helpers.js'; |
| |
| testShowToast((toast) => { |
| assert_true(toast != null); |
| assert_true(toast instanceof StdToastElement); |
| }, 'showToast creates and returns a toast'); |
| |
| testShowToast((toast) => { |
| assert_true(document.querySelector('std-toast') === toast); |
| }, 'showToast puts the toast in the DOM'); |
| |
| testShowToast((toast) => { |
| assertToastShown(toast); |
| }, 'showToast displays the toast by default'); |
| |
| testShowToast((toast) => { |
| toast.hide(); |
| |
| assertToastNotShown(toast); |
| }, 'hiding showToast immediately does not display it'); |
| |
| testShowToast((toast) => { |
| toast.show(); |
| |
| assertToastShown(toast); |
| }, 'calling show after showToast does nothing'); |
| |
| testShowToast((toast) => { |
| let toast2; |
| try { |
| toast2 = showToast('message2'); |
| |
| assert_not_equals(toast, toast2); |
| } |
| finally { |
| toast2.remove(); |
| } |
| }, 'calling showToast multiple times creates multiple different toasts'); |
| |
| test(() => { |
| const toast = showToast('test'); |
| assert_equals(toast.textContent, 'test'); |
| }, 'showToast created toast has `test` as its text content'); |
| |
| test(() => { |
| const toast = showToast('<p>rich text</p>'); |
| |
| assert_equals(toast.textContent, '<p>rich text</p>'); |
| assert_equals(toast.querySelector('p'), null); |
| }, 'passing markup to showToast does not pass through the markup behaviors'); |
| </script> |