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 |