Index: third_party/WebKit/LayoutTests/http/tests/inspector/persistence/persistence-test.js |
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector/persistence/persistence-test.js b/third_party/WebKit/LayoutTests/http/tests/inspector/persistence/persistence-test.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5d6b82e96f3a8803dac0d73ff0eed554a824f291 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/http/tests/inspector/persistence/persistence-test.js |
@@ -0,0 +1,65 @@ |
+var initialize_PersistenceTest = function() { |
+ |
+InspectorTest.preloadModule("persistence"); |
+InspectorTest.preloadModule("sources"); |
+ |
+WebInspector.PersistenceBinding.prototype.toString = function() |
+{ |
+ var lines = [ |
+ "{", |
+ " network: " + this.network.url(), |
+ " persistent: " + this.persistent.url(), |
+ "}" |
+ ]; |
+ return lines.join("\n"); |
+} |
+ |
+InspectorTest.waitForBinding = function(fileName, callback) |
+{ |
+ var bindings = WebInspector.persistence._bindings.valuesArray(); |
+ for (var binding of bindings) { |
+ if (binding.network.name() === fileName || binding.persistent.name() === fileName) { |
+ callback(binding); |
+ return; |
+ } |
+ } |
+ WebInspector.persistence.addEventListener(WebInspector.Persistence.Events.BindingCreated, onBindingCreated); |
+ |
+ function onBindingCreated(event) |
+ { |
+ var binding = event.data; |
+ if (binding.network.name() !== fileName && binding.persistent.name() !== fileName) |
+ return; |
+ WebInspector.persistence.removeEventListener(WebInspector.Persistence.Events.BindingCreated, onBindingCreated); |
+ callback(binding); |
+ } |
+} |
+ |
+InspectorTest.waitForUISourceCode = function(name, projectType) |
+{ |
+ var uiSourceCodes = WebInspector.workspace.uiSourceCodes(); |
+ var uiSourceCode = uiSourceCodes.find(filterCode); |
+ if (uiSourceCode) |
+ return Promise.resolve(uiSourceCode); |
+ |
+ var fulfill; |
+ var promise = new Promise(x => fulfill = x); |
+ WebInspector.workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeAdded, onUISourceCode); |
+ return promise; |
+ |
+ function onUISourceCode(event) |
+ { |
+ var uiSourceCode = event.data; |
+ if (!filterCode(uiSourceCode)) |
+ return; |
+ WebInspector.workspace.removeEventListener(WebInspector.Workspace.Events.UISourceCodeAdded, onUISourceCode); |
+ fulfill(uiSourceCode); |
+ } |
+ |
+ function filterCode(uiSourceCode) |
+ { |
+ return uiSourceCode.name() === name && uiSourceCode.project().type() === projectType; |
+ } |
+} |
+ |
+} |