| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 471 * Tests network raw headers text. | 471 * Tests network raw headers text. |
| 472 */ | 472 */ |
| 473 TestSuite.prototype.testNetworkRawHeadersText = function() | 473 TestSuite.prototype.testNetworkRawHeadersText = function() |
| 474 { | 474 { |
| 475 var test = this; | 475 var test = this; |
| 476 | 476 |
| 477 function finishResource(resource, finishTime) | 477 function finishResource(resource, finishTime) |
| 478 { | 478 { |
| 479 if (!resource.responseHeadersText) | 479 if (!resource.responseHeadersText) |
| 480 test.fail("Failure: resource does not have response headers text"); | 480 test.fail("Failure: resource does not have response headers text"); |
| 481 var index = resource.responseHeadersText.indexOf("Date:") | 481 var index = resource.responseHeadersText.indexOf("Date:"); |
| 482 test.assertEquals(112, resource.responseHeadersText.substring(index).len
gth, "Incorrect response headers text length"); | 482 test.assertEquals(112, resource.responseHeadersText.substring(index).len
gth, "Incorrect response headers text length"); |
| 483 test.releaseControl(); | 483 test.releaseControl(); |
| 484 } | 484 } |
| 485 | 485 |
| 486 this.addSniffer(WebInspector.NetworkDispatcher.prototype, "_finishNetworkReq
uest", finishResource); | 486 this.addSniffer(WebInspector.NetworkDispatcher.prototype, "_finishNetworkReq
uest", finishResource); |
| 487 | 487 |
| 488 // Reload inspected page to sniff network events | 488 // Reload inspected page to sniff network events |
| 489 test.evaluateInConsole_("window.location.reload(true);", function(resultText
) {}); | 489 test.evaluateInConsole_("window.location.reload(true);", function(resultText
) {}); |
| 490 | 490 |
| 491 this.takeControl(); | 491 this.takeControl(); |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 632 TestSuite.prototype.enableTouchEmulation = function() | 632 TestSuite.prototype.enableTouchEmulation = function() |
| 633 { | 633 { |
| 634 var deviceModeModel = new WebInspector.DeviceModeModel(function() {}); | 634 var deviceModeModel = new WebInspector.DeviceModeModel(function() {}); |
| 635 deviceModeModel._target = WebInspector.targetManager.mainTarget(); | 635 deviceModeModel._target = WebInspector.targetManager.mainTarget(); |
| 636 deviceModeModel._applyTouch(true, true); | 636 deviceModeModel._applyTouch(true, true); |
| 637 }; | 637 }; |
| 638 | 638 |
| 639 TestSuite.prototype.enableAutoAttachToCreatedPages = function() | 639 TestSuite.prototype.enableAutoAttachToCreatedPages = function() |
| 640 { | 640 { |
| 641 WebInspector.settingForTest("autoAttachToCreatedPages").set(true); | 641 WebInspector.settingForTest("autoAttachToCreatedPages").set(true); |
| 642 } | 642 }; |
| 643 | 643 |
| 644 TestSuite.prototype.waitForDebuggerPaused = function() | 644 TestSuite.prototype.waitForDebuggerPaused = function() |
| 645 { | 645 { |
| 646 var debuggerModel = WebInspector.DebuggerModel.fromTarget(WebInspector.targe
tManager.mainTarget()); | 646 var debuggerModel = WebInspector.DebuggerModel.fromTarget(WebInspector.targe
tManager.mainTarget()); |
| 647 if (debuggerModel.debuggerPausedDetails) | 647 if (debuggerModel.debuggerPausedDetails) |
| 648 return; | 648 return; |
| 649 | 649 |
| 650 this.takeControl(); | 650 this.takeControl(); |
| 651 this._waitForScriptPause(this.releaseControl.bind(this)); | 651 this._waitForScriptPause(this.releaseControl.bind(this)); |
| 652 } | 652 }; |
| 653 | 653 |
| 654 TestSuite.prototype.switchToPanel = function(panelName) | 654 TestSuite.prototype.switchToPanel = function(panelName) |
| 655 { | 655 { |
| 656 this.showPanel(panelName).then(this.releaseControl.bind(this)); | 656 this.showPanel(panelName).then(this.releaseControl.bind(this)); |
| 657 this.takeControl(); | 657 this.takeControl(); |
| 658 } | 658 }; |
| 659 | 659 |
| 660 // Regression test for crbug.com/370035. | 660 // Regression test for crbug.com/370035. |
| 661 TestSuite.prototype.testDeviceMetricsOverrides = function() | 661 TestSuite.prototype.testDeviceMetricsOverrides = function() |
| 662 { | 662 { |
| 663 const dumpPageMetrics = function() | 663 const dumpPageMetrics = function() |
| 664 { | 664 { |
| 665 return JSON.stringify({ | 665 return JSON.stringify({ |
| 666 width: window.innerWidth, | 666 width: window.innerWidth, |
| 667 height: window.innerHeight, | 667 height: window.innerHeight, |
| 668 deviceScaleFactor: window.devicePixelRatio | 668 deviceScaleFactor: window.devicePixelRatio |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 817 var filmStripModel = new WebInspector.FilmStripModel(WebInspector.panels
.timeline._tracingModel); | 817 var filmStripModel = new WebInspector.FilmStripModel(WebInspector.panels
.timeline._tracingModel); |
| 818 var frames = filmStripModel.frames(); | 818 var frames = filmStripModel.frames(); |
| 819 test.assertTrue(frames.length > 4 && typeof frames.length === "number"); | 819 test.assertTrue(frames.length > 4 && typeof frames.length === "number"); |
| 820 loadFrameImages(frames); | 820 loadFrameImages(frames); |
| 821 } | 821 } |
| 822 | 822 |
| 823 function loadFrameImages(frames) | 823 function loadFrameImages(frames) |
| 824 { | 824 { |
| 825 var readyImages = []; | 825 var readyImages = []; |
| 826 for (var frame of frames) | 826 for (var frame of frames) |
| 827 frame.imageDataPromise().then(onGotImageData) | 827 frame.imageDataPromise().then(onGotImageData); |
| 828 | 828 |
| 829 function onGotImageData(data) | 829 function onGotImageData(data) |
| 830 { | 830 { |
| 831 var image = new Image(); | 831 var image = new Image(); |
| 832 test.assertTrue(!!data, "No image data for frame"); | 832 test.assertTrue(!!data, "No image data for frame"); |
| 833 image.addEventListener("load", onLoad); | 833 image.addEventListener("load", onLoad); |
| 834 image.src = "data:image/jpg;base64," + data; | 834 image.src = "data:image/jpg;base64," + data; |
| 835 } | 835 } |
| 836 | 836 |
| 837 function onLoad(event) | 837 function onLoad(event) |
| (...skipping 27 matching lines...) Expand all Loading... |
| 865 else if (data.data[2] > 200) | 865 else if (data.data[2] > 200) |
| 866 blueCount++; | 866 blueCount++; |
| 867 else | 867 else |
| 868 test.fail("Unexpected color: " + color); | 868 test.fail("Unexpected color: " + color); |
| 869 } | 869 } |
| 870 test.assertTrue(redCount && greenCount && blueCount, "Color sanity check
failed"); | 870 test.assertTrue(redCount && greenCount && blueCount, "Color sanity check
failed"); |
| 871 test.releaseControl(); | 871 test.releaseControl(); |
| 872 } | 872 } |
| 873 | 873 |
| 874 test.takeControl(); | 874 test.takeControl(); |
| 875 } | 875 }; |
| 876 | 876 |
| 877 TestSuite.prototype.testSettings = function() | 877 TestSuite.prototype.testSettings = function() |
| 878 { | 878 { |
| 879 var test = this; | 879 var test = this; |
| 880 | 880 |
| 881 createSettings(); | 881 createSettings(); |
| 882 test.takeControl(); | 882 test.takeControl(); |
| 883 setTimeout(reset, 0); | 883 setTimeout(reset, 0); |
| 884 | 884 |
| 885 function createSettings() | 885 function createSettings() |
| (...skipping 17 matching lines...) Expand all Loading... |
| 903 var localSetting = WebInspector.settings.createSetting("local", undefine
d, true); | 903 var localSetting = WebInspector.settings.createSetting("local", undefine
d, true); |
| 904 test.assertEquals("object", typeof localSetting.get()); | 904 test.assertEquals("object", typeof localSetting.get()); |
| 905 test.assertEquals("local", localSetting.get().s); | 905 test.assertEquals("local", localSetting.get().s); |
| 906 test.assertEquals(1, localSetting.get().n); | 906 test.assertEquals(1, localSetting.get().n); |
| 907 var globalSetting = WebInspector.settings.createSetting("global", undefi
ned, false); | 907 var globalSetting = WebInspector.settings.createSetting("global", undefi
ned, false); |
| 908 test.assertEquals("object", typeof globalSetting.get()); | 908 test.assertEquals("object", typeof globalSetting.get()); |
| 909 test.assertEquals("global", globalSetting.get().s); | 909 test.assertEquals("global", globalSetting.get().s); |
| 910 test.assertEquals(2, globalSetting.get().n); | 910 test.assertEquals(2, globalSetting.get().n); |
| 911 test.releaseControl(); | 911 test.releaseControl(); |
| 912 } | 912 } |
| 913 } | 913 }; |
| 914 | 914 |
| 915 TestSuite.prototype.testWindowInitializedOnNavigateBack = function() | 915 TestSuite.prototype.testWindowInitializedOnNavigateBack = function() |
| 916 { | 916 { |
| 917 var messages = WebInspector.multitargetConsoleModel.messages(); | 917 var messages = WebInspector.multitargetConsoleModel.messages(); |
| 918 this.assertEquals(1, messages.length); | 918 this.assertEquals(1, messages.length); |
| 919 var text = messages[0].messageText; | 919 var text = messages[0].messageText; |
| 920 if (text.indexOf("Uncaught") !== -1) | 920 if (text.indexOf("Uncaught") !== -1) |
| 921 this.fail(text); | 921 this.fail(text); |
| 922 }; | 922 }; |
| 923 | 923 |
| 924 TestSuite.prototype.testConsoleContextNames = function() | 924 TestSuite.prototype.testConsoleContextNames = function() |
| 925 { | 925 { |
| 926 var test = this; | 926 var test = this; |
| 927 test.takeControl(); | 927 test.takeControl(); |
| 928 this.showPanel("console").then(() => this._waitForExecutionContexts(2, onExe
cutionContexts.bind(this))); | 928 this.showPanel("console").then(() => this._waitForExecutionContexts(2, onExe
cutionContexts.bind(this))); |
| 929 | 929 |
| 930 function onExecutionContexts() | 930 function onExecutionContexts() |
| 931 { | 931 { |
| 932 var consoleView = WebInspector.ConsoleView.instance(); | 932 var consoleView = WebInspector.ConsoleView.instance(); |
| 933 var options = consoleView._consoleContextSelector._selectElement.options
; | 933 var options = consoleView._consoleContextSelector._selectElement.options
; |
| 934 var values = []; | 934 var values = []; |
| 935 for (var i = 0; i < options.length; ++i) | 935 for (var i = 0; i < options.length; ++i) |
| 936 values.push(options[i].value.trim()); | 936 values.push(options[i].value.trim()); |
| 937 test.assertEquals("top", values[0]); | 937 test.assertEquals("top", values[0]); |
| 938 test.assertEquals("Simple content script", values[1]); | 938 test.assertEquals("Simple content script", values[1]); |
| 939 test.releaseControl(); | 939 test.releaseControl(); |
| 940 } | 940 } |
| 941 } | 941 }; |
| 942 | 942 |
| 943 TestSuite.prototype.testDevToolsSharedWorker = function() | 943 TestSuite.prototype.testDevToolsSharedWorker = function() |
| 944 { | 944 { |
| 945 this.takeControl(); | 945 this.takeControl(); |
| 946 WebInspector.TempFile.ensureTempStorageCleared().then(() => this.releaseCont
rol()); | 946 WebInspector.TempFile.ensureTempStorageCleared().then(() => this.releaseCont
rol()); |
| 947 } | 947 }; |
| 948 | 948 |
| 949 TestSuite.prototype.waitForTestResultsInConsole = function() | 949 TestSuite.prototype.waitForTestResultsInConsole = function() |
| 950 { | 950 { |
| 951 var messages = WebInspector.multitargetConsoleModel.messages(); | 951 var messages = WebInspector.multitargetConsoleModel.messages(); |
| 952 for (var i = 0; i < messages.length; ++i) { | 952 for (var i = 0; i < messages.length; ++i) { |
| 953 var text = messages[i].messageText; | 953 var text = messages[i].messageText; |
| 954 if (text === "PASS") | 954 if (text === "PASS") |
| 955 return; | 955 return; |
| 956 else if (/^FAIL/.test(text)) | 956 else if (/^FAIL/.test(text)) |
| 957 this.fail(text); // This will throw. | 957 this.fail(text); // This will throw. |
| (...skipping 21 matching lines...) Expand all Loading... |
| 979 } | 979 } |
| 980 receiver[methodName] = function() | 980 receiver[methodName] = function() |
| 981 { | 981 { |
| 982 try { | 982 try { |
| 983 var value = original.apply(receiver, arguments); | 983 var value = original.apply(receiver, arguments); |
| 984 } finally { | 984 } finally { |
| 985 receiver[methodName] = original; | 985 receiver[methodName] = original; |
| 986 } | 986 } |
| 987 override.apply(original, arguments); | 987 override.apply(original, arguments); |
| 988 return value; | 988 return value; |
| 989 } | 989 }; |
| 990 } | 990 }; |
| 991 | 991 |
| 992 TestSuite.prototype.startTimeline = function(callback) | 992 TestSuite.prototype.startTimeline = function(callback) |
| 993 { | 993 { |
| 994 var test = this; | 994 var test = this; |
| 995 this.showPanel("timeline").then(function() { | 995 this.showPanel("timeline").then(function() { |
| 996 var timeline = WebInspector.panels.timeline; | 996 var timeline = WebInspector.panels.timeline; |
| 997 test._overrideMethod(timeline, "recordingStarted", callback); | 997 test._overrideMethod(timeline, "recordingStarted", callback); |
| 998 timeline._toggleRecording(); | 998 timeline._toggleRecording(); |
| 999 }); | 999 }); |
| 1000 } | 1000 }; |
| 1001 | 1001 |
| 1002 TestSuite.prototype.stopTimeline = function(callback) | 1002 TestSuite.prototype.stopTimeline = function(callback) |
| 1003 { | 1003 { |
| 1004 var timeline = WebInspector.panels.timeline; | 1004 var timeline = WebInspector.panels.timeline; |
| 1005 this._overrideMethod(timeline, "loadingComplete", callback); | 1005 this._overrideMethod(timeline, "loadingComplete", callback); |
| 1006 timeline._toggleRecording(); | 1006 timeline._toggleRecording(); |
| 1007 } | 1007 }; |
| 1008 | 1008 |
| 1009 TestSuite.prototype.invokePageFunctionAsync = function(functionName, opt_args, c
allback_is_always_last) | 1009 TestSuite.prototype.invokePageFunctionAsync = function(functionName, opt_args, c
allback_is_always_last) |
| 1010 { | 1010 { |
| 1011 var callback = arguments[arguments.length - 1]; | 1011 var callback = arguments[arguments.length - 1]; |
| 1012 var doneMessage = `DONE: ${functionName}.${++this._asyncInvocationId}`; | 1012 var doneMessage = `DONE: ${functionName}.${++this._asyncInvocationId}`; |
| 1013 var argsString = arguments.length < 3 ? "" : Array.prototype.slice.call(argu
ments, 1, -1).map(arg => JSON.stringify(arg)).join(",") + ","; | 1013 var argsString = arguments.length < 3 ? "" : Array.prototype.slice.call(argu
ments, 1, -1).map(arg => JSON.stringify(arg)).join(",") + ","; |
| 1014 this.evaluateInConsole_(`${functionName}(${argsString} function() { console.
log('${doneMessage}'); });`, function() {}); | 1014 this.evaluateInConsole_(`${functionName}(${argsString} function() { console.
log('${doneMessage}'); });`, function() {}); |
| 1015 WebInspector.multitargetConsoleModel.addEventListener(WebInspector.ConsoleMo
del.Events.MessageAdded, onConsoleMessage); | 1015 WebInspector.multitargetConsoleModel.addEventListener(WebInspector.ConsoleMo
del.Events.MessageAdded, onConsoleMessage); |
| 1016 | 1016 |
| 1017 function onConsoleMessage(event) | 1017 function onConsoleMessage(event) |
| 1018 { | 1018 { |
| 1019 var text = event.data.messageText; | 1019 var text = event.data.messageText; |
| 1020 if (text === doneMessage) { | 1020 if (text === doneMessage) { |
| 1021 WebInspector.multitargetConsoleModel.removeEventListener(WebInspecto
r.ConsoleModel.Events.MessageAdded, onConsoleMessage); | 1021 WebInspector.multitargetConsoleModel.removeEventListener(WebInspecto
r.ConsoleModel.Events.MessageAdded, onConsoleMessage); |
| 1022 callback(); | 1022 callback(); |
| 1023 } | 1023 } |
| 1024 } | 1024 } |
| 1025 } | 1025 }; |
| 1026 | 1026 |
| 1027 TestSuite.prototype.invokeAsyncWithTimeline_ = function(functionName, callback) | 1027 TestSuite.prototype.invokeAsyncWithTimeline_ = function(functionName, callback) |
| 1028 { | 1028 { |
| 1029 var test = this; | 1029 var test = this; |
| 1030 | 1030 |
| 1031 this.startTimeline(onRecordingStarted); | 1031 this.startTimeline(onRecordingStarted); |
| 1032 | 1032 |
| 1033 function onRecordingStarted() | 1033 function onRecordingStarted() |
| 1034 { | 1034 { |
| 1035 test.invokePageFunctionAsync(functionName, pageActionsDone); | 1035 test.invokePageFunctionAsync(functionName, pageActionsDone); |
| 1036 } | 1036 } |
| 1037 | 1037 |
| 1038 function pageActionsDone() | 1038 function pageActionsDone() |
| 1039 { | 1039 { |
| 1040 test.stopTimeline(callback); | 1040 test.stopTimeline(callback); |
| 1041 } | 1041 } |
| 1042 }; | 1042 }; |
| 1043 | 1043 |
| 1044 TestSuite.prototype.enableExperiment = function(name) | 1044 TestSuite.prototype.enableExperiment = function(name) |
| 1045 { | 1045 { |
| 1046 Runtime.experiments.enableForTest(name); | 1046 Runtime.experiments.enableForTest(name); |
| 1047 } | 1047 }; |
| 1048 | 1048 |
| 1049 TestSuite.prototype.checkInputEventsPresent = function() | 1049 TestSuite.prototype.checkInputEventsPresent = function() |
| 1050 { | 1050 { |
| 1051 var expectedEvents = new Set(arguments); | 1051 var expectedEvents = new Set(arguments); |
| 1052 var model = WebInspector.panels.timeline._model; | 1052 var model = WebInspector.panels.timeline._model; |
| 1053 var asyncEvents = model.mainThreadAsyncEvents(); | 1053 var asyncEvents = model.mainThreadAsyncEvents(); |
| 1054 var input = asyncEvents.get(WebInspector.TimelineModel.AsyncEventGroup.input
) || []; | 1054 var input = asyncEvents.get(WebInspector.TimelineModel.AsyncEventGroup.input
) || []; |
| 1055 var prefix = "InputLatency::"; | 1055 var prefix = "InputLatency::"; |
| 1056 for (var e of input) { | 1056 for (var e of input) { |
| 1057 if (!e.name.startsWith(prefix)) | 1057 if (!e.name.startsWith(prefix)) |
| 1058 continue; | 1058 continue; |
| 1059 if (e.steps.length < 2) | 1059 if (e.steps.length < 2) |
| 1060 continue; | 1060 continue; |
| 1061 if (e.name.startsWith(prefix + "Mouse") && typeof e.steps[0].timeWaiting
ForMainThread !== "number") | 1061 if (e.name.startsWith(prefix + "Mouse") && typeof e.steps[0].timeWaiting
ForMainThread !== "number") |
| 1062 throw `Missing timeWaitingForMainThread on ${e.name}`; | 1062 throw `Missing timeWaitingForMainThread on ${e.name}`; |
| 1063 expectedEvents.delete(e.name.substr(prefix.length)); | 1063 expectedEvents.delete(e.name.substr(prefix.length)); |
| 1064 } | 1064 } |
| 1065 if (expectedEvents.size) | 1065 if (expectedEvents.size) |
| 1066 throw "Some expected events are not found: " + Array.from(expectedEvents
.keys()).join(","); | 1066 throw "Some expected events are not found: " + Array.from(expectedEvents
.keys()).join(","); |
| 1067 } | 1067 }; |
| 1068 | 1068 |
| 1069 /** | 1069 /** |
| 1070 * Serializes array of uiSourceCodes to string. | 1070 * Serializes array of uiSourceCodes to string. |
| 1071 * @param {!Array.<!WebInspectorUISourceCode>} uiSourceCodes | 1071 * @param {!Array.<!WebInspectorUISourceCode>} uiSourceCodes |
| 1072 * @return {string} | 1072 * @return {string} |
| 1073 */ | 1073 */ |
| 1074 TestSuite.prototype.uiSourceCodesToString_ = function(uiSourceCodes) | 1074 TestSuite.prototype.uiSourceCodesToString_ = function(uiSourceCodes) |
| 1075 { | 1075 { |
| 1076 var names = []; | 1076 var names = []; |
| 1077 for (var i = 0; i < uiSourceCodes.length; i++) | 1077 for (var i = 0; i < uiSourceCodes.length; i++) |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1187 { | 1187 { |
| 1188 checkTargets.call(this); | 1188 checkTargets.call(this); |
| 1189 | 1189 |
| 1190 function checkTargets() | 1190 function checkTargets() |
| 1191 { | 1191 { |
| 1192 if (WebInspector.targetManager.targets().length >= n) | 1192 if (WebInspector.targetManager.targets().length >= n) |
| 1193 callback.call(null); | 1193 callback.call(null); |
| 1194 else | 1194 else |
| 1195 this.addSniffer(WebInspector.TargetManager.prototype, "addTarget", c
heckTargets.bind(this)); | 1195 this.addSniffer(WebInspector.TargetManager.prototype, "addTarget", c
heckTargets.bind(this)); |
| 1196 } | 1196 } |
| 1197 } | 1197 }; |
| 1198 | 1198 |
| 1199 TestSuite.prototype._waitForExecutionContexts = function(n, callback) | 1199 TestSuite.prototype._waitForExecutionContexts = function(n, callback) |
| 1200 { | 1200 { |
| 1201 var runtimeModel = WebInspector.targetManager.mainTarget().runtimeModel; | 1201 var runtimeModel = WebInspector.targetManager.mainTarget().runtimeModel; |
| 1202 checkForExecutionContexts.call(this); | 1202 checkForExecutionContexts.call(this); |
| 1203 | 1203 |
| 1204 function checkForExecutionContexts() | 1204 function checkForExecutionContexts() |
| 1205 { | 1205 { |
| 1206 if (runtimeModel.executionContexts().length >= n) | 1206 if (runtimeModel.executionContexts().length >= n) |
| 1207 callback.call(null); | 1207 callback.call(null); |
| 1208 else | 1208 else |
| 1209 this.addSniffer(WebInspector.RuntimeModel.prototype, "_executionCont
extCreated", checkForExecutionContexts.bind(this)); | 1209 this.addSniffer(WebInspector.RuntimeModel.prototype, "_executionCont
extCreated", checkForExecutionContexts.bind(this)); |
| 1210 } | 1210 } |
| 1211 } | 1211 }; |
| 1212 | 1212 |
| 1213 /** | 1213 /** |
| 1214 * Key event with given key identifier. | 1214 * Key event with given key identifier. |
| 1215 */ | 1215 */ |
| 1216 TestSuite.createKeyEvent = function(key) | 1216 TestSuite.createKeyEvent = function(key) |
| 1217 { | 1217 { |
| 1218 return new KeyboardEvent("keydown", {bubbles: true, cancelable:true, key: ke
y}); | 1218 return new KeyboardEvent("keydown", {bubbles: true, cancelable:true, key: ke
y}); |
| 1219 }; | 1219 }; |
| 1220 | 1220 |
| 1221 window.uiTests = new TestSuite(window.domAutomationController); | 1221 window.uiTests = new TestSuite(window.domAutomationController); |
| 1222 })(window); | 1222 })(window); |
| OLD | NEW |