| Index: third_party/WebKit/LayoutTests/inspector/network/network-product-entry.html
|
| diff --git a/third_party/WebKit/LayoutTests/inspector/network/network-product-entry.html b/third_party/WebKit/LayoutTests/inspector/network/network-product-entry.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..602200dc9234728929085237ec936d8ef22ffa39
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/inspector/network/network-product-entry.html
|
| @@ -0,0 +1,81 @@
|
| +<html>
|
| +<head>
|
| +<script src="../../http/tests/inspector/inspector-test.js"></script>
|
| +<script src="../../http/tests/inspector/network-test.js"></script>
|
| +<script src="../../http/tests/inspector/page-mock.js"></script>
|
| +<script>
|
| +
|
| +async function test() {
|
| + Runtime.experiments.enableForTest('networkGroupingRequests');
|
| + var productRegistry = await ProductRegistry.instance();
|
| + ProductRegistryImpl.resetForTest();
|
| + addProductEntry('*.test.example.com');
|
| + addProductEntry('cdn-*.example.com');
|
| + addProductEntry('has-product-subframe.example.com');
|
| +
|
| + InspectorTest.addResult('');
|
| +
|
| + InspectorTest.recordNetwork();
|
| +
|
| + var pageMock = new InspectorTest.PageMock('http://example.com');
|
| + var productFrameId = pageMock.addFrame('http://has-product-subframe.example.com');
|
| + var noProductFrameId = pageMock.addFrame('http://no-product-subframe.example.com');
|
| + var target = InspectorTest.connectToPage('mock-page-subframe-1', pageMock, true /* makeMainTarget */);
|
| + var resourceTreeModel = target.model(SDK.ResourceTreeModel);
|
| +
|
| + await InspectorTest.waitEventListener(SDK.ResourceTreeModel.Events.CachedResourcesLoaded, resourceTreeModel);
|
| +
|
| + // Main page requests.
|
| + var mainFrame = resourceTreeModel.mainFrame;
|
| + await runOnFrameAndLog(mainFrame, 'http://example.com/');
|
| + await runOnFrameAndLog(mainFrame, 'http://test.example.com/');
|
| + await runOnFrameAndLog(mainFrame, 'http://cdn-1.example.com/');
|
| + await runOnFrameAndLog(mainFrame, 'http://example.org/');
|
| +
|
| + // Frame is associated with product.
|
| + var productFrame = resourceTreeModel.frameForId(productFrameId);
|
| + await runOnFrameAndLog(productFrame, 'http://example.com/');
|
| + await runOnFrameAndLog(productFrame, 'http://test.example.com/');
|
| + await runOnFrameAndLog(productFrame, 'http://cdn-1.example.com/');
|
| + await runOnFrameAndLog(productFrame, 'http://example.org/');
|
| +
|
| + // Frame is not associated with product.
|
| + var noProductFrame = resourceTreeModel.frameForId(noProductFrameId);
|
| + await runOnFrameAndLog(noProductFrame, 'http://example.com/');
|
| + await runOnFrameAndLog(noProductFrame, 'http://test.example.com/');
|
| + await runOnFrameAndLog(noProductFrame, 'http://cdn-1.example.com/');
|
| + await runOnFrameAndLog(noProductFrame, 'http://example.org/');
|
| +
|
| + InspectorTest.completeTest();
|
| +
|
| + async function runOnFrameAndLog(frame, url) {
|
| + var requestId = await pageMock.requestWillBeSent(url, frame);
|
| + var networkManager = target.model(SDK.NetworkManager);
|
| + var request = InspectorTest.networkLog.requestForId(networkManager, requestId);
|
| + await waitNodeAndLogResultForRequest(request);
|
| + }
|
| +
|
| + async function waitNodeAndLogResultForRequest(request) {
|
| + var frame = SDK.ResourceTreeModel.frameForRequest(request);
|
| + var node = await InspectorTest.waitForNetworkLogViewNodeForRequest(request);
|
| + var productEntry = await node.productEntry();
|
| + var productName = productEntry ? productEntry.entry.name : '**No Product Entry**';
|
| + var matchedURL = productEntry ? productEntry.matchedURL.url : '**No Product Entry**';
|
| + InspectorTest.addResult("URL: " + request.url());
|
| + InspectorTest.addResult("Frame URL: " + frame.url);
|
| + InspectorTest.addResult("ProductEntry Name: " + productName);
|
| + InspectorTest.addResult("ProductEntry MatchedURL: " + matchedURL);
|
| + InspectorTest.addResult("");
|
| + }
|
| +
|
| + function addProductEntry(domainPattern) {
|
| + InspectorTest.addResult("Adding product entry: " + domainPattern);
|
| + ProductRegistryImpl.registerEntryForTest(domainPattern, domainPattern);
|
| + }
|
| +}
|
| +</script>
|
| +</head>
|
| +<body onload="runTest()">
|
| +<p>Tests to ensure product registry attributes frames and resources in network panel.</p>
|
| +</body>
|
| +</html>
|
|
|