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

Unified Diff: third_party/WebKit/LayoutTests/inspector-protocol/layers/get-layers.js

Issue 2954343004: [DevTools] Migrate inspector-protocol/layers tests to new harness (Closed)
Patch Set: fix test Created 3 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/inspector-protocol/layers/get-layers.js
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/layers/get-layers.js b/third_party/WebKit/LayoutTests/inspector-protocol/layers/get-layers.js
new file mode 100644
index 0000000000000000000000000000000000000000..d5b92584dd48c2779a64fa024bd9fe7004e7e7f8
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/inspector-protocol/layers/get-layers.js
@@ -0,0 +1,56 @@
+(async function(testRunner) {
+ let {page, session, dp} = await testRunner.startURL('../resources/get-layers.html', '');
+
+ function layerMutations(oldLayers, newLayers) {
+ var oldLayerIds = oldLayers.map(layer => layer.layerId);
+ var newLayerIds = newLayers.map(layer => layer.layerId);
+ return {
+ additions: newLayers.filter(layer => oldLayerIds.indexOf(layer.layerId) === -1),
+ removals: oldLayers.filter(layer => newLayerIds.indexOf(layer.layerId) === -1)
+ };
+ }
+
+ function attributesFromArray(attributes) {
+ var map = new Map();
+ for (var i = 0, count = attributes.length; i < count; i += 2)
+ map.set(attributes[i], attributes[i + 1]);
+ return map;
+ }
+
+ function dumpLayers(layers) {
+ function replacer(key, value) {
+ if (['layerId', 'parentLayerId', 'backendNodeId', 'paintCount'].indexOf(key) >= 0)
+ return typeof(value);
+ // some values differ based on port, but the ones we most
+ // care about will always be less or equal 100.
+ if ((key === 'width' || key === 'height') && value > 100)
+ return typeof(value);
+ return value;
+ }
+
+ // Keep 'internal' layers out for better stability.
+ layers = layers.filter(layer => !!layer.backendNodeId);
+ testRunner.log('\n' + JSON.stringify(layers, replacer, ' '));
+ }
+
+ await dp.DOM.getDocument();
+ dp.LayerTree.enable();
+ var initialLayers = (await dp.LayerTree.onceLayerTreeDidChange()).params.layers;
+
+ dp.Runtime.evaluate({expression: 'addCompositedLayer()'});
+ var modifiedLayers = (await dp.LayerTree.onceLayerTreeDidChange()).params.layers;
+
+ var mutations = layerMutations(initialLayers, modifiedLayers);
+ var newLayer = mutations.additions[0];
+
+ var nodeResponse = await dp.DOM.pushNodesByBackendIdsToFrontend({backendNodeIds: [newLayer.backendNodeId]});
+ var attributesResponse = await dp.DOM.getAttributes({nodeId: nodeResponse.result.nodeIds[0]});
+ var attributes = attributesFromArray(attributesResponse.result.attributes);
+ if (attributes.get('id') !== 'last-element')
+ testRunner.log('FAIL: Did not obtain the expected element for the last inserted layer.');
+
+ dumpLayers(initialLayers);
+ dumpLayers(modifiedLayers);
+ testRunner.log('DONE!');
+ testRunner.completeTest();
+})

Powered by Google App Engine
This is Rietveld 408576698