Chromium Code Reviews| Index: chrome/browser/task_management/providers/browser_process/browser_process_task_unittest.cc |
| diff --git a/chrome/browser/task_management/providers/browser_process/browser_process_task_unittest.cc b/chrome/browser/task_management/providers/browser_process/browser_process_task_unittest.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..27616943a7fe181aadba329df077fd7b765df32b |
| --- /dev/null |
| +++ b/chrome/browser/task_management/providers/browser_process/browser_process_task_unittest.cc |
| @@ -0,0 +1,83 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "chrome/browser/task_management/providers/browser_process/browser_process_task_provider.h" |
| +#include "chrome/grit/generated_resources.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| +#include "ui/base/l10n/l10n_util.h" |
| + |
| +namespace task_management { |
| + |
| +class BrowserProcessTaskProviderTest |
| + : public testing::Test, |
| + public TaskProviderObserver { |
| + public: |
| + BrowserProcessTaskProviderTest() |
| + : provided_task_(nullptr) { |
| + } |
| + |
| + ~BrowserProcessTaskProviderTest() override {} |
| + |
| + // task_management::TaskProviderObserver: |
| + void TaskAdded(Task* task) override { |
| + provided_task_ = task; |
| + } |
| + void TaskRemoved(Task* task) override { |
| + // This will never be called in the case of a browser process task provider. |
| + EXPECT_FALSE(true); |
|
Lei Zhang
2015/04/03 02:44:14
Just call FAIL() here.
afakhry
2015/04/03 16:04:27
Done.
|
| + } |
| + |
| + protected: |
| + Task* provided_task_; |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(BrowserProcessTaskProviderTest); |
| +}; |
| + |
| +// Tests the browser process task provider and browser process task itself. |
| +TEST_F(BrowserProcessTaskProviderTest, TestObserving) { |
| + BrowserProcessTaskProvider provider; |
| + EXPECT_EQ(nullptr, provided_task_); |
| + provider.SetObserver(this); |
| + EXPECT_NE(nullptr, provided_task_); |
| + provider.ClearObserver(); |
| + EXPECT_NE(nullptr, provided_task_); |
| +} |
| + |
| +// Testing retrieving the task from the provider using the ids of a URL request. |
| +TEST_F(BrowserProcessTaskProviderTest, GetTaskOfUrlRequest) { |
| + BrowserProcessTaskProvider provider; |
| + EXPECT_EQ(nullptr, provided_task_); |
| + provider.SetObserver(this); |
| + EXPECT_NE(nullptr, provided_task_); |
| + |
| + Task* result = provider.GetTaskOfUrlRequest(1, 0, 0); |
| + EXPECT_EQ(nullptr, result); |
| + result = provider.GetTaskOfUrlRequest(0, -1, 0); |
| + EXPECT_EQ(provided_task_, result); |
| +} |
| + |
| +// Test the provided browser process task itself. |
| +TEST_F(BrowserProcessTaskProviderTest, TestProvidedTask) { |
| + BrowserProcessTaskProvider provider; |
| + EXPECT_EQ(nullptr, provided_task_); |
| + provider.SetObserver(this); |
| + EXPECT_NE(nullptr, provided_task_); |
|
Lei Zhang
2015/04/03 02:44:14
This should be ASSERT and not EXPECT. If this fail
afakhry
2015/04/03 16:04:27
Done.
|
| + |
| + EXPECT_EQ(base::GetCurrentProcessHandle(), provided_task_->process_handle()); |
| + EXPECT_FALSE(provided_task_->ReportsWebCacheStats()); |
| + EXPECT_EQ(l10n_util::GetStringUTF16(IDS_TASK_MANAGER_WEB_BROWSER_CELL_TEXT), |
| + provided_task_->title()); |
| + EXPECT_EQ(Task::BROWSER, provided_task_->GetType()); |
| + EXPECT_EQ(0, provided_task_->GetChildProcessUniqueID()); |
| + EXPECT_EQ(0, provided_task_->GetRoutingID()); |
| + const int received_bytes = 1024; |
| + EXPECT_EQ(0, provided_task_->network_usage()); |
| + provided_task_->OnNetworkBytesRead(received_bytes); |
| + // Do a refresh with a 1-second update time. |
| + provided_task_->Refresh(base::TimeDelta::FromSeconds(1)); |
| + EXPECT_EQ(received_bytes, provided_task_->network_usage()); |
| +} |
| + |
| +} // namespace task_management |