Home | History | Annotate | Download | only in processes
      1 // Copyright (c) 2012 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 "base/command_line.h"
      6 #include "chrome/browser/extensions/extension_apitest.h"
      7 #include "chrome/browser/extensions/extension_test_message_listener.h"
      8 #include "chrome/browser/task_manager/task_manager.h"
      9 #include "chrome/browser/task_manager/task_manager_browsertest_util.h"
     10 #include "chrome/browser/ui/browser.h"
     11 #include "chrome/browser/ui/browser_dialogs.h"
     12 #include "chrome/browser/ui/browser_window.h"
     13 #include "extensions/common/switches.h"
     14 
     15 // Sometimes times out on Mac OS and Windows
     16 // crbug.com/97499
     17 // Also on Linux: crbug.com/130138
     18 #if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) || defined(OS_CHROMEOS)
     19 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_Processes) {
     20 #else
     21 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, Processes) {
     22 #endif
     23   ASSERT_TRUE(RunExtensionTest("processes/api")) << message_;
     24 }
     25 
     26 // http://crbug.com/31663
     27 // TODO(linux_aura) http://crbug.com/163931
     28 #if !(defined(OS_WIN) && defined(USE_AURA)) && !(defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(USE_AURA))
     29 
     30 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ProcessesVsTaskManager) {
     31   // Ensure task manager is not yet updating
     32   TaskManagerModel* model = TaskManager::GetInstance()->model();
     33   EXPECT_EQ(0, model->update_requests_);
     34   EXPECT_EQ(TaskManagerModel::IDLE, model->update_state_);
     35 
     36   // Load extension that adds listener in background page
     37   ExtensionTestMessageListener listener("ready", false);
     38   ASSERT_TRUE(LoadExtension(
     39       test_data_dir_.AppendASCII("processes").AppendASCII("onupdated")));
     40   ASSERT_TRUE(listener.WaitUntilSatisfied());
     41 
     42   // Ensure the task manager has started updating
     43   EXPECT_EQ(1, model->update_requests_);
     44   EXPECT_EQ(TaskManagerModel::TASK_PENDING, model->update_state_);
     45 
     46   // Now show the task manager and wait for it to be ready
     47   chrome::ShowTaskManager(browser());
     48 
     49   EXPECT_EQ(2, model->update_requests_);
     50   EXPECT_EQ(TaskManagerModel::TASK_PENDING, model->update_state_);
     51 
     52   // Unload the extension and check that listener count decreases
     53   UnloadExtension(last_loaded_extension_id());
     54   EXPECT_EQ(1, model->update_requests_);
     55 }
     56 
     57 #endif
     58