| Index: third_party/WebKit/LayoutTests/app_banner/app-banner-event-prompt.html
|
| diff --git a/third_party/WebKit/LayoutTests/app_banner/app-banner-event-prompt.html b/third_party/WebKit/LayoutTests/app_banner/app-banner-event-prompt.html
|
| index f328d6af1343dd8cefe3f6cc938c2cb1eabd973c..f44c664e1ad9c678733584e8586712ed8dc51a1f 100644
|
| --- a/third_party/WebKit/LayoutTests/app_banner/app-banner-event-prompt.html
|
| +++ b/third_party/WebKit/LayoutTests/app_banner/app-banner-event-prompt.html
|
| @@ -5,41 +5,89 @@
|
|
|
| var prompt_test_cases = [
|
| {
|
| - name: 'prompt-accept',
|
| + name: 'prompt-accept-access-userchoice-first',
|
| cancel: true,
|
| late: false,
|
| platform: 'foo',
|
| - outcome: 'accepted'
|
| + outcome: 'accepted',
|
| + userChoice: true
|
| }, {
|
| - name: 'prompt-dismiss',
|
| + name: 'prompt-accept-no-access-userchoice-first',
|
| + cancel: true,
|
| + late: false,
|
| + platform: 'foo',
|
| + outcome: 'accepted',
|
| + userChoice: false
|
| + }, {
|
| + name: 'prompt-dismiss-access-userchoice-first',
|
| + cancel: true,
|
| + late: false,
|
| + platform: '',
|
| + outcome: 'dismissed',
|
| + userChoice: true
|
| + }, {
|
| + name: 'prompt-dismiss-no-access-userchoice-first',
|
| cancel: true,
|
| late: false,
|
| platform: '',
|
| - outcome: 'dismissed'
|
| + outcome: 'dismissed',
|
| + userChoice: false
|
| }, {
|
| - name: 'prompt-before-preventDefault',
|
| + name: 'prompt-before-preventDefault-access-userchoice-first',
|
| cancel: false,
|
| late: false,
|
| platform: 'foo',
|
| - outcome: 'accepted'
|
| + outcome: 'accepted',
|
| + userChoice: true
|
| + }, {
|
| + name: 'prompt-before-preventDefault-no-access-userchoice-first',
|
| + cancel: false,
|
| + late: false,
|
| + platform: 'foo',
|
| + outcome: 'accepted',
|
| + userChoice: false
|
| + }, {
|
| + name: 'prompt-late-accept-access-userchoice-first',
|
| + cancel: true,
|
| + late: true,
|
| + platform: 'foo',
|
| + outcome: 'accepted',
|
| + userChoice: false
|
| }, {
|
| - name: 'prompt-late-accept',
|
| + name: 'prompt-late-accept-no-access-userchoice-first',
|
| cancel: true,
|
| late: true,
|
| platform: 'foo',
|
| - outcome: 'accepted'
|
| + outcome: 'accepted',
|
| + userChoice: false
|
| }, {
|
| - name: 'prompt-late-dismiss',
|
| + name: 'prompt-late-dismiss-access-userchoice-first',
|
| cancel: true,
|
| late: true,
|
| platform: '',
|
| - outcome: 'dismissed'
|
| + outcome: 'dismissed',
|
| + userChoice: true
|
| }, {
|
| - name: 'prompt-late-without-preventDefault',
|
| + name: 'prompt-late-dismiss-no-access-userchoice-first',
|
| + cancel: true,
|
| + late: true,
|
| + platform: '',
|
| + outcome: 'dismissed',
|
| + userChoice: false
|
| + }, {
|
| + name: 'prompt-late-without-preventDefault-access-userchoice-first',
|
| + cancel: false,
|
| + late: true,
|
| + platform: '',
|
| + outcome: 'dismissed',
|
| + userChoice: true
|
| + }, {
|
| + name: 'prompt-late-without-preventDefault-no-access-userchoice-first',
|
| cancel: false,
|
| late: true,
|
| platform: '',
|
| - outcome: 'dismissed'
|
| + outcome: 'dismissed',
|
| + userChoice: false
|
| }
|
| ];
|
|
|
| @@ -92,11 +140,28 @@ function prompt_test(index) {
|
| assert_equals(e.platforms[0], 'foo', 'First platform');
|
| assert_equals(e.platforms[1], 'bar', 'Second platform');
|
|
|
| + if (test_case.userChoice) {
|
| + // Access userChoice to ensure it is independent of prompt.
|
| + e.userChoice;
|
| + }
|
| +
|
| if (test_case.cancel) {
|
| e.preventDefault();
|
| }
|
|
|
| if (test_case.late) {
|
| + window.setTimeout(function() {
|
| + assert_false(event == null, "event is null outside handler");
|
| +
|
| + // Test that firing prompt() outside of the handler resolves or rejects correctly.
|
| + if (test_case.cancel) {
|
| + verify_prompt_resolve(event, t);
|
| + } else {
|
| + verify_prompt_reject(event, t);
|
| + }
|
| + // Check userChoice and call the next test.
|
| + verify_userChoice(event, t, test_case, index);
|
| + }, 0);
|
| return;
|
| }
|
|
|
| @@ -114,20 +179,9 @@ function prompt_test(index) {
|
| });
|
| window.addEventListener('beforeinstallprompt', event_handler);
|
|
|
| - testRunner.dispatchBeforeInstallPromptEvent(index, ['foo', 'bar'], t.step_func(function(result) {
|
| - testRunner.resolveBeforeInstallPromptPromise(index, test_case.platform);
|
| + testRunner.dispatchBeforeInstallPromptEvent(['foo', 'bar'], t.step_func(function(result) {
|
| + testRunner.resolveBeforeInstallPromptPromise(test_case.platform);
|
| }));
|
| -
|
| - // Test that firing prompt() outside of the handler resolves or rejects correctly.
|
| - if (test_case.late) {
|
| - if (test_case.cancel) {
|
| - verify_prompt_resolve(event, t);
|
| - } else {
|
| - verify_prompt_reject(event, t);
|
| - }
|
| - // Check userChoice and call the next test.
|
| - verify_userChoice(event, t, test_case, index);
|
| - }
|
| }, test_case.name);
|
| }
|
|
|
|
|