bdd: Add some tests for HTML5 notifications.
This commit is contained in:
parent
1ddf817f4c
commit
cf09e477a4
39
tests/integration/data/prompt/notifications.html
Normal file
39
tests/integration/data/prompt/notifications.html
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<script type="text/javascript">
|
||||||
|
function permission_cb(permission) {
|
||||||
|
switch (permission) {
|
||||||
|
case "granted":
|
||||||
|
console.log("notification permission granted");
|
||||||
|
break;
|
||||||
|
case "denied":
|
||||||
|
console.log("notification permission denied");
|
||||||
|
break;
|
||||||
|
case "default":
|
||||||
|
console.log("notification permission aborted");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
console.log("[FAIL] unknown value for permission: " + Notification.permission);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_notification_permission() {
|
||||||
|
if ("Notification" in window) {
|
||||||
|
if (Notification.permission === "default") {
|
||||||
|
Notification.requestPermission(permission_cb);
|
||||||
|
} else {
|
||||||
|
console.log("[FAIL] unknown initial value for Notification.permission: " + Notification.permission);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.log("[FAIL] notifications unavailable");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<input type="button" onclick="get_notification_permission()" value="Get notification permission">
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -137,3 +137,43 @@ Feature: Prompts
|
|||||||
And I wait for a prompt
|
And I wait for a prompt
|
||||||
And I run :leave-mode
|
And I run :leave-mode
|
||||||
Then the javascript message "geolocation permission denied" should be logged
|
Then the javascript message "geolocation permission denied" should be logged
|
||||||
|
|
||||||
|
# Notifications
|
||||||
|
|
||||||
|
Scenario: Always rejecting notifications
|
||||||
|
When I set content -> notifications to false
|
||||||
|
And I open data/prompt/notifications.html
|
||||||
|
And I click the button
|
||||||
|
Then the javascript message "notification permission denied" should be logged
|
||||||
|
|
||||||
|
Scenario: Always accepting notifications
|
||||||
|
When I set content -> notifications to true
|
||||||
|
And I open data/prompt/notifications.html
|
||||||
|
And I click the button
|
||||||
|
Then the javascript message "notification permission granted" should be logged
|
||||||
|
|
||||||
|
Scenario: notifications with ask -> false
|
||||||
|
When I set content -> notifications to ask
|
||||||
|
And I open data/prompt/notifications.html
|
||||||
|
And I click the button
|
||||||
|
And I wait for a prompt
|
||||||
|
And I run :prompt-no
|
||||||
|
Then the javascript message "notification permission denied" should be logged
|
||||||
|
|
||||||
|
Scenario: notifications with ask -> true
|
||||||
|
When I set content -> notifications to ask
|
||||||
|
And I open data/prompt/notifications.html
|
||||||
|
And I click the button
|
||||||
|
And I wait for a prompt
|
||||||
|
And I run :prompt-yes
|
||||||
|
Then the javascript message "notification permission granted" should be logged
|
||||||
|
|
||||||
|
# This actually gives us a denied rather than an aborted
|
||||||
|
@skip
|
||||||
|
Scenario: notifications with ask -> abort
|
||||||
|
When I set content -> notifications to ask
|
||||||
|
And I open data/prompt/notifications.html
|
||||||
|
And I click the button
|
||||||
|
And I wait for a prompt
|
||||||
|
And I run :leave-mode
|
||||||
|
Then the javascript message "notification permission aborted" should be logged
|
||||||
|
Loading…
Reference in New Issue
Block a user