Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(213)

Side by Side Diff: LayoutTests/inspector/storage-panel-dom-storage-undo-redo.html

Issue 21163003: DevTools: Implement undo, redo operations for the DOMStorage views. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <html>
2 <head>
3 <script src="../http/tests/inspector/inspector-test.js"></script>
4 <script>
5
6 function initializeDOMStorage()
7 {
8 localStorage.clear();
9 sessionStorage.clear();
10 }
11
12 function getDOMStorageEntries(isLocalStorage)
13 {
14 var storage = isLocalStorage ? localStorage : sessionStorage;
15 var entries = [];
16 for (var i = 0; i < storage.length; ++i) {
17 var key = storage.key(i);
18 var value = storage.getItem(key);
19 entries.push(key + value);
apavlov 2013/08/01 09:19:16 Are you sure you used this code to generate the ex
20 }
21 entries.sort();
22 return "[" + entries.join() + "]";
apavlov 2013/08/01 09:19:16 This will just glue them together without "," in b
23 }
24
25 function test()
26 {
27 // Resources panel must be visible
apavlov 2013/08/01 09:19:16 Comments are not required in tests (these are typi
28 WebInspector.showPanel("resources");
29
30 var LocalStorage;
apavlov 2013/08/01 09:19:16 in order to follow the naming guidelines, these ca
31 var SessionStorage;
32 var storages = WebInspector.domStorageModel.storages();
33 for (var i = 0; i < storages.length; ++i) {
34 var storage = storages[i];
35 if (storage.isLocalStorage)
36 LocalStorage = storage;
37 else
38 SessionStorage = storage;
39 }
40
41 function dumpDOMStorage(next)
42 {
43 function storageEntriesReceived(entries)
apavlov 2013/08/01 09:19:16 We have moved to the practice of putting callbacks
44 {
45 InspectorTest.addResult((this.isLocalStorage ? "LocalStorage" : "Ses sionStorage") + " contents:" + entries.description);
46 next();
47 }
48 if (this.isLocalStorage)
49 InspectorTest.evaluateInPage("getDOMStorageEntries(true)", storageEn triesReceived.bind(this));
50 else
51 InspectorTest.evaluateInPage("getDOMStorageEntries(false)", storageE ntriesReceived.bind(this));
52 }
53
54 function show(storage)
55 {
56 WebInspector.panels.resources._showDOMStorage(storage);
57 }
58
59 function undo(operations, next)
60 {
61 for (var i = 0; i < operations; ++i)
62 this.undo();
63 InspectorTest.runAfterPendingDispatches(dumpDOMStorage.bind(this, next)) ;
64 }
65
66 function redo(operations, next)
67 {
68 for (var i = 0; i < operations; ++i)
69 this.redo();
70 InspectorTest.runAfterPendingDispatches(dumpDOMStorage.bind(this, next)) ;
71 }
72
73 function addKeyValuePair(storage, key, value)
74 {
75 var dataGrid = WebInspector.panels.resources._domStorageViews.get(storag e)._dataGrid;
76 var creationNode = dataGrid.rootNode().children[dataGrid.rootNode().chil dren.length - 1];
77
78 var elementKey = creationNode._element.children[0];
79 dataGrid._startEditing(elementKey);
80 elementKey.textContent = key;
81 elementKey.dispatchEvent(InspectorTest.createKeyEvent("Enter"));
82
83 var elementValue = creationNode._element.children[1];
84 dataGrid._startEditing(elementValue);
85 elementValue.textContent = "=" + value;
86 elementValue.dispatchEvent(InspectorTest.createKeyEvent("Enter"));
87 }
88
89 function modifyValueForKey(storage, key, newValue)
90 {
91 var dataGrid = WebInspector.panels.resources._domStorageViews.get(storag e)._dataGrid;
92 var children = dataGrid.rootNode().children;
93
94 var modificationNode;
95 for (var i = 0; i < children.length; ++i) {
96 if (children[i]._element.children[0].textContent === key) {
97 modificationNode = children[i];
98 break;
99 }
100 }
101
102 var elementValue = modificationNode._element.children[1];
103 dataGrid._startEditing(elementValue);
104 elementValue.textContent = "=" + newValue;
105 elementValue.dispatchEvent(InspectorTest.createKeyEvent("Enter"));
106 }
107
108 function changeKey(storage, oldKey, newKey)
109 {
110 var dataGrid = WebInspector.panels.resources._domStorageViews.get(storag e)._dataGrid;
111 var children = dataGrid.rootNode().children;
112
113 var modificationNode;
114 for (var i = 0; i < children.length; ++i) {
115 if (children[i]._element.children[0].textContent === oldKey) {
116 modificationNode = children[i];
117 break;
118 }
119 }
120 var elementKey = modificationNode._element.children[0];
121 dataGrid._startEditing(elementKey);
122 elementKey.textContent = newKey;
123 elementKey.dispatchEvent(InspectorTest.createKeyEvent("Enter"));
124 }
125
126 InspectorTest.runTestSuite([
127 function initialize(next)
128 {
129 function initialized(result)
130 {
131 InspectorTest.addResult("Initialized localStorage and sessionSto rage by clearing entries");
132 next();
133 }
134 InspectorTest.evaluateInPage("initializeDOMStorage()", initialized ) ;
135 },
136
137 function addLocalStorageEntries(next)
138 {
139 function domStorageViewShown()
140 {
141 addKeyValuePair(this, "a1", "b1");
142 addKeyValuePair(this, "a2", "b2");
143 InspectorTest.runAfterPendingDispatches(dumpDOMStorage.bind(this , next));
144 }
145 show(LocalStorage);
146 InspectorTest.runAfterPendingDispatches(domStorageViewShown.bind(Loc alStorage));
147 },
148
149 function undoLocalStorageLastAddition(next)
150 {
151 show(LocalStorage);
152 InspectorTest.runAfterPendingDispatches(undo.bind(LocalStorage, 2, n ext));
153 },
154
155 function addSessionStorageEntries(next)
156 {
157 function domStorageViewShown()
158 {
159 addKeyValuePair(this, "p1", "q1");
160 addKeyValuePair(this, "p2", "q2");
161 addKeyValuePair(this, "p3", "q3");
162 addKeyValuePair(this, "p4", "q4");
163 InspectorTest.runAfterPendingDispatches(dumpDOMStorage.bind(this , next));
164 }
165 show(SessionStorage);
166 InspectorTest.runAfterPendingDispatches(domStorageViewShown.bind(Ses sionStorage));
167 },
168
169 function redoLocalStorageLastAddition(next)
170 {
171 show(LocalStorage);
172 InspectorTest.runAfterPendingDispatches(redo.bind(LocalStorage, 2, n ext));
173 },
174
175 function undoSessionStorageLastAddition(next)
176 {
177 show(SessionStorage);
178 InspectorTest.runAfterPendingDispatches(undo.bind(SessionStorage, 2, next));
179 },
180
181 function modifyLocalStorageValues(next)
182 {
183 function domStorageViewShown()
184 {
185 modifyValueForKey(this, "a1", "x1");
186 modifyValueForKey(this, "a2", "x2");
187 InspectorTest.runAfterPendingDispatches(dumpDOMStorage.bind(this , next));
188 }
189 show(LocalStorage);
190 InspectorTest.runAfterPendingDispatches(domStorageViewShown.bind(Loc alStorage));
191 },
192
193 function undoLocalStorageModifications(next)
194 {
195 show(LocalStorage);
196 InspectorTest.runAfterPendingDispatches(undo.bind(LocalStorage, 2, n ext));
197 },
198
199 function redoLocalStorageModifications(next)
200 {
201 show(LocalStorage);
202 InspectorTest.runAfterPendingDispatches(redo.bind(LocalStorage, 2, n ext));
203 },
204
205 function modifySessionStorageEntriesKey(next)
206 {
207 function domStorageViewShown()
208 {
209 changeKey(this, "p1", "m1");
210 changeKey(this, "p2", "m2");
211 changeKey(this, "p3", "m3");
212 InspectorTest.runAfterPendingDispatches(dumpDOMStorage.bind(this , next));
213 }
214 show(SessionStorage);
215 InspectorTest.runAfterPendingDispatches(domStorageViewShown.bind(Ses sionStorage));
216 },
217
218 function undoLocalStorageModifications(next)
219 {
220 show(LocalStorage);
221 InspectorTest.runAfterPendingDispatches(undo.bind(LocalStorage, 2, n ext));
222 }
223 ]);
224 }
225 </script>
226 </head>
227 <body onload="runTest()">
228 <p>This test demonstrates the undo/redo operations performed on the storage view s</p>
apavlov 2013/08/01 09:19:16 tests do not demonstrate, they check that somethin
229 </body>
230 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698