mirror of
https://github.com/servo/servo.git
synced 2025-06-30 12:03:38 +01:00
76 lines
1.8 KiB
JavaScript
76 lines
1.8 KiB
JavaScript
import { showToast, StdToastElement } from 'std:elements/toast';
|
|
|
|
// helper functions to keep tests from bleeding into each other
|
|
|
|
const runTest = (testFn, name, toast) => {
|
|
try {
|
|
test(() => {
|
|
testFn(toast);
|
|
}, name);
|
|
} finally {
|
|
toast.remove();
|
|
}
|
|
};
|
|
|
|
const runTestAsync = (testFn, name, toast) => {
|
|
async_test(t => {
|
|
testFn(t, toast);
|
|
t.add_cleanup(() => {
|
|
toast.remove();
|
|
});
|
|
}, name);
|
|
};
|
|
|
|
export const testToastElement = (testFn, name) => {
|
|
const toast = new StdToastElement('Message', {});
|
|
document.querySelector('main').appendChild(toast);
|
|
|
|
runTest(testFn, name, toast);
|
|
};
|
|
|
|
export const testToastElementAsync = (testFn, name) => {
|
|
const toast = new StdToastElement('Message', {});
|
|
document.querySelector('main').appendChild(toast);
|
|
|
|
runTestAsync(testFn, name, toast);
|
|
};
|
|
|
|
export const testShowToast = (testFn, name) => {
|
|
const toast = showToast("message");
|
|
|
|
runTest(testFn, name, toast);
|
|
};
|
|
|
|
export const assertToastShown = (toast) => {
|
|
assert_not_equals(window.getComputedStyle(toast).display, 'none');
|
|
assert_true(toast.hasAttribute('open'));
|
|
assert_true(toast.open);
|
|
};
|
|
|
|
export const assertToastNotShown = (toast) => {
|
|
assert_equals(window.getComputedStyle(toast).display, 'none');
|
|
assert_false(toast.hasAttribute('open'));
|
|
assert_false(toast.open);
|
|
};
|
|
|
|
export const assertActionButtonOnToast = (action, toast) => {
|
|
assert_equals(toast.action, action);
|
|
assert_equals(action.getAttribute('slot'), 'action');
|
|
assert_equals(action, toast.querySelector('button'));
|
|
};
|
|
|
|
export class EventCollector {
|
|
events = [];
|
|
|
|
getCallback() {
|
|
return (e) => {this.events.push(e)};
|
|
}
|
|
|
|
getCount() {
|
|
return this.events.length;
|
|
}
|
|
|
|
getEvents() {
|
|
return this.events;
|
|
}
|
|
}
|