Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / devtools / device / port_forwarding_browsertest.cc
index 959c1cb..e51f0ae 100644 (file)
@@ -28,7 +28,7 @@ const int kDefaultDebuggingPort = 9223;
 }
 
 class PortForwardingTest: public InProcessBrowserTest {
-  virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
+  void SetUpCommandLine(CommandLine* command_line) override {
     InProcessBrowserTest::SetUpCommandLine(command_line);
     command_line->AppendSwitchASCII(switches::kRemoteDebuggingPort,
         base::IntToString(kDefaultDebuggingPort));
@@ -44,12 +44,12 @@ class PortForwardingTest: public InProcessBrowserTest {
           AddPortForwardingListener(this);
     }
 
-    virtual ~Listener() {
+    ~Listener() override {
       DevToolsAndroidBridge::Factory::GetForProfile(profile_)->
           RemovePortForwardingListener(this);
     }
 
-    virtual void PortStatusChanged(const DevicesStatus& status) OVERRIDE {
+    void PortStatusChanged(const ForwardingStatus& status) override {
       if (status.empty() && skip_empty_devices_)
         return;
       base::MessageLoop::current()->PostTask(
@@ -127,3 +127,42 @@ IN_PROC_BROWSER_TEST_F(PortForwardingTest,
   prefs->SetBoolean(prefs::kDevToolsPortForwardingEnabled, false);
   content::RunMessageLoop();
 }
+
+IN_PROC_BROWSER_TEST_F(PortForwardingTest, DisconnectOnRelease) {
+  Profile* profile = browser()->profile();
+
+  AndroidDeviceManager::DeviceProviders device_providers;
+
+  scoped_refptr<SelfAsDeviceProvider> self_provider(
+      new SelfAsDeviceProvider(kDefaultDebuggingPort));
+  device_providers.push_back(self_provider);
+
+  DevToolsAndroidBridge::Factory::GetForProfile(profile)->
+      set_device_providers_for_test(device_providers);
+
+  ASSERT_TRUE(test_server()->Start());
+  GURL original_url = test_server()->GetURL(kPortForwardingTestPage);
+
+  std::string forwarding_port("8000");
+  GURL forwarding_url(original_url.scheme() + "://" +
+      original_url.host() + ":" + forwarding_port + original_url.path());
+
+  PrefService* prefs = profile->GetPrefs();
+  prefs->SetBoolean(prefs::kDevToolsPortForwardingEnabled, true);
+
+  base::DictionaryValue config;
+  config.SetString(
+      forwarding_port, original_url.host() + ":" + original_url.port());
+  prefs->Set(prefs::kDevToolsPortForwardingConfig, config);
+
+  scoped_ptr<Listener> wait_for_port_forwarding(new Listener(profile));
+  content::RunMessageLoop();
+
+  self_provider->set_release_callback_for_test(
+      base::Bind(&base::MessageLoop::PostTask,
+                 base::Unretained(base::MessageLoop::current()),
+                 FROM_HERE,
+                 base::MessageLoop::QuitClosure()));
+  wait_for_port_forwarding.reset();
+  content::RunMessageLoop();
+}