| OLD | NEW |
| (Empty) |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "chrome/browser/ui/webui/devtools_ui.h" | |
| 6 #include "testing/gtest/include/gtest/gtest.h" | |
| 7 | |
| 8 class DevToolsUITest : public testing::Test { | |
| 9 }; | |
| 10 | |
| 11 TEST_F(DevToolsUITest, SanitizeFrontendURL) { | |
| 12 std::vector<std::pair<std::string, std::string>> tests = { | |
| 13 {"random-string", | |
| 14 "chrome-devtools://devtools/"}, | |
| 15 {"http://valid.url/but/wrong", | |
| 16 "chrome-devtools://devtools/but/wrong"}, | |
| 17 {"chrome-devtools://wrong-domain/", | |
| 18 "chrome-devtools://devtools/"}, | |
| 19 {"chrome-devtools://devtools/bundled/devtools.html", | |
| 20 "chrome-devtools://devtools/bundled/devtools.html"}, | |
| 21 {"chrome-devtools://devtools:1234/bundled/devtools.html#hash", | |
| 22 "chrome-devtools://devtools/bundled/devtools.html"}, | |
| 23 {"chrome-devtools://devtools/some/random/path", | |
| 24 "chrome-devtools://devtools/some/random/path"}, | |
| 25 {"chrome-devtools://devtools/bundled/devtools.html?experiments=true", | |
| 26 "chrome-devtools://devtools/bundled/devtools.html?experiments=true"}, | |
| 27 {"chrome-devtools://devtools/bundled/devtools.html" | |
| 28 "?some-flag=flag&v8only=true&experiments=false&debugFrontend=a" | |
| 29 "&another-flag=another-flag&can_dock=false&isSharedWorker=notreally" | |
| 30 "&remoteFrontend=sure", | |
| 31 "chrome-devtools://devtools/bundled/devtools.html" | |
| 32 "?v8only=true&experiments=true&debugFrontend=true" | |
| 33 "&can_dock=true&isSharedWorker=true&remoteFrontend=true"}, | |
| 34 {"chrome-devtools://devtools/?ws=any-value-is-fine", | |
| 35 "chrome-devtools://devtools/?ws=any-value-is-fine"}, | |
| 36 {"chrome-devtools://devtools/" | |
| 37 "?service-backend=ws://localhost:9222/services", | |
| 38 "chrome-devtools://devtools/" | |
| 39 "?service-backend=ws://localhost:9222/services"}, | |
| 40 {"chrome-devtools://devtools/?dockSide=undocked", | |
| 41 "chrome-devtools://devtools/?dockSide=undocked"}, | |
| 42 {"chrome-devtools://devtools/?dockSide=dock-to-bottom", | |
| 43 "chrome-devtools://devtools/"}, | |
| 44 {"chrome-devtools://devtools/?dockSide=bottom", | |
| 45 "chrome-devtools://devtools/"}, | |
| 46 {"chrome-devtools://devtools/?remoteBase=" | |
| 47 "http://example.com:1234/remote-base#hash", | |
| 48 "chrome-devtools://devtools/?remoteBase=" | |
| 49 "https://chrome-devtools-frontend.appspot.com/" | |
| 50 "serve_file//"}, | |
| 51 {"chrome-devtools://devtools/?ws=1%26evil%3dtrue", | |
| 52 "chrome-devtools://devtools/?ws=1%26evil%3dtrue"}, | |
| 53 {"chrome-devtools://devtools/?remoteBase=" | |
| 54 "https://chrome-devtools-frontend.appspot.com/some/path/" | |
| 55 "@123719741873/more/path.html", | |
| 56 "chrome-devtools://devtools/?remoteBase=" | |
| 57 "https://chrome-devtools-frontend.appspot.com/serve_file/path/"}, | |
| 58 {"chrome-devtools://devtools/?remoteBase=" | |
| 59 "https://chrome-devtools-frontend.appspot.com/serve_file/" | |
| 60 "@123719741873/inspector.html%3FdebugFrontend%3Dfalse", | |
| 61 "chrome-devtools://devtools/?remoteBase=" | |
| 62 "https://chrome-devtools-frontend.appspot.com/serve_file/" | |
| 63 "@123719741873/"}, | |
| 64 {"chrome-devtools://devtools/bundled/inspector.html?" | |
| 65 "&remoteBase=https://chrome-devtools-frontend.appspot.com/serve_file/" | |
| 66 "@b4907cc5d602ff470740b2eb6344b517edecb7b9/&can_dock=true", | |
| 67 "chrome-devtools://devtools/bundled/inspector.html?" | |
| 68 "remoteBase=https://chrome-devtools-frontend.appspot.com/serve_file/" | |
| 69 "@b4907cc5d602ff470740b2eb6344b517edecb7b9/&can_dock=true"}, | |
| 70 {"chrome-devtools://devtools/?remoteFrontendUrl=" | |
| 71 "https://chrome-devtools-frontend.appspot.com/serve_rev/" | |
| 72 "@12345/inspector.html%3FdebugFrontend%3Dfalse", | |
| 73 "chrome-devtools://devtools/?remoteFrontendUrl=" | |
| 74 "https%3A%2F%2Fchrome-devtools-frontend.appspot.com%2Fserve_rev" | |
| 75 "%2F%4012345%2Finspector.html%3FdebugFrontend%3Dtrue"}, | |
| 76 {"chrome-devtools://devtools/?remoteFrontendUrl=" | |
| 77 "https://chrome-devtools-frontend.appspot.com/serve_rev/" | |
| 78 "@12345/inspector.html%22></iframe>something", | |
| 79 "chrome-devtools://devtools/?remoteFrontendUrl=" | |
| 80 "https%3A%2F%2Fchrome-devtools-frontend.appspot.com%2Fserve_rev" | |
| 81 "%2F%4012345%2Finspector.html"}, | |
| 82 {"chrome-devtools://devtools/?remoteFrontendUrl=" | |
| 83 "http://domain:1234/path/rev/a/filename.html%3Fparam%3Dvalue#hash", | |
| 84 "chrome-devtools://devtools/?remoteFrontendUrl=" | |
| 85 "https%3A%2F%2Fchrome-devtools-frontend.appspot.com%2Fserve_rev" | |
| 86 "%2Frev%2Finspector.html"}, | |
| 87 {"chrome-devtools://devtools/?experiments=whatever&remoteFrontendUrl=" | |
| 88 "https://chrome-devtools-frontend.appspot.com/serve_rev/" | |
| 89 "@12345/devtools.html%3Fws%3Danyvalue%26experiments%3Dlikely" | |
| 90 "&unencoded=value&debugFrontend=true", | |
| 91 "chrome-devtools://devtools/?experiments=true&remoteFrontendUrl=" | |
| 92 "https%3A%2F%2Fchrome-devtools-frontend.appspot.com%2Fserve_rev" | |
| 93 "%2F%4012345%2Fdevtools.html%3Fws%3Danyvalue%26experiments%3Dtrue" | |
| 94 "&debugFrontend=true"}, | |
| 95 }; | |
| 96 | |
| 97 for (const auto& pair : tests) { | |
| 98 GURL url = GURL(pair.first); | |
| 99 url = DevToolsUI::SanitizeFrontendURL(url); | |
| 100 EXPECT_EQ(pair.second, url.spec()); | |
| 101 } | |
| 102 } | |
| OLD | NEW |