Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/http/tests/inspector/resources/resources-panel-on-navigation.html |
| diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector/resources/resources-panel-on-navigation.html b/third_party/WebKit/LayoutTests/http/tests/inspector/resources/resources-panel-on-navigation.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..76629b21da2e7728103409797489f4fb04bee0e8 |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/http/tests/inspector/resources/resources-panel-on-navigation.html |
| @@ -0,0 +1,89 @@ |
| +<html> |
| +<head> |
| +<script src="../inspector-test.js"></script> |
| +<script src="../resources-test.js"></script> |
| +<script src="../console-test.js"></script> |
| +<script src="../indexeddb/indexeddb-test.js"></script> |
| +<script> // window.debugTest=true; |
|
dgozman
2017/04/11 17:27:29
remove debugTest
eostroukhov
2017/04/11 21:45:57
Done.
|
| + |
| +function test() |
| +{ |
| + var mainFrameId = InspectorTest.resourceTreeModel.mainFrame.id; |
| + |
| + function dump(node, prefix) |
| + { |
| + for (var child of node.children()) { |
| + InspectorTest.addResult(prefix + child.listItemElement.textContent); |
| + dump(child, prefix + ' '); |
| + } |
| + } |
| + |
| + function createDatabase() { |
| + return new Promise(resolve => InspectorTest.createDatabase(mainFrameId, 'Database1', resolve)); |
| + } |
| + |
| + function waitABit() { |
|
dgozman
2017/04/11 17:27:28
Why this?
eostroukhov
2017/04/11 21:45:57
Removed
|
| + return new Promise(resolve => setTimeout(resolve, 500)); |
| + } |
| + |
| + function waitForDatabase() { |
| + var model = InspectorTest.mainTarget.model(Resources.IndexedDBModel); |
| + return new Promise(resolve => { |
| + var event = model.addEventListener(Resources.IndexedDBModel.Events.DatabaseAdded, () => { |
| + Common.EventTarget.removeEventListeners([event]); |
| + resolve(); |
| + }); |
| + model.refreshDatabaseNames(); |
| + }) |
| + } |
| + |
| + function createWebSQLDatabase() { |
|
dgozman
2017/04/11 17:27:29
Let's move a helper in resources-test.js.
eostroukhov
2017/04/11 21:45:57
Done.
|
| + return new Promise(resolve => { |
| + var callbackl_id = 'createWebSQLDatabase_callback'; |
| + InspectorTest.evaluateInPage('openDatabase("test-resource-view-websql-db", "1.0", "", 1024 * 1024, dispatchCallback.bind(this, "' + callbackl_id + '"))'); |
| + InspectorTest.addConsoleSniffer(msg => { |
|
dgozman
2017/04/11 17:27:28
Instead of sniffing for console, take a look into
eostroukhov
2017/04/11 21:45:57
Done.
|
| + if (msg.messageText === callbackl_id) |
| + resolve(); |
| + }, false); |
| + }); |
| + } |
| + |
| + function fireFrameNavigated() { |
| + var rtm = InspectorTest.mainTarget.model(SDK.ResourceTreeModel); |
|
dgozman
2017/04/11 17:27:28
InspectorTest.resourceTreeModel
eostroukhov
2017/04/11 21:45:57
Done.
|
| + rtm.dispatchEventToListeners(SDK.ResourceTreeModel.Events.FrameNavigated, rtm.mainFrame); |
|
dgozman
2017/04/11 17:27:28
Faking an event is usually a bad practice. Instead
eostroukhov
2017/04/11 21:45:57
Done.
|
| + } |
| + |
| + function dumpCurrentState(label) { |
| + var view = UI.panels.resources; |
| + InspectorTest.addResult(label); |
| + dump(view._sidebar._sidebarTree.rootElement(), ''); |
| + InspectorTest.addResult('Visible view is a query view: ' + (view.visibleView instanceof Resources.DatabaseQueryView)); |
| + } |
| + |
| + async function doTests() { |
|
dgozman
2017/04/11 17:27:29
You can inline this function into test() directly.
eostroukhov
2017/04/11 21:45:57
Done.
|
| + try{ |
| + await createDatabase(); |
| + await waitForDatabase(); |
| + await createWebSQLDatabase(); |
| + |
| + UI.viewManager.showView('resources'); |
| + UI.panels.resources._sidebar.databasesListTreeElement.firstChild().select(false, true); |
| + dumpCurrentState('Initial state:'); |
| + fireFrameNavigated(); |
| + dumpCurrentState('After navigation:'); |
| + } catch (e) { |
|
dgozman
2017/04/11 17:27:28
inspector-test does this for you.
eostroukhov
2017/04/11 21:45:57
Done.
(on a separate note - I don't see inspector
|
| + console.error(e); |
| + } |
| + } |
| + |
| + doTests().then(() => InspectorTest.completeTest(), reason => { |
| + console.log(reason); |
| + InspectorTest.completeTest(); |
| + }); |
| +} |
| +</script> |
| +</head> |
| +<body onload="runTest()"> |
| +<p>Tests Application Panel behavious on main frame navigation.</p> |
|
dgozman
2017/04/11 17:27:29
typo: behaviour
eostroukhov
2017/04/11 21:45:57
Done.
|
| +</body> |
| +</html> |