| Index: chrome/browser/task_management/providers/browser_process_task_unittest.cc
|
| diff --git a/chrome/browser/task_management/providers/browser_process_task_unittest.cc b/chrome/browser/task_management/providers/browser_process_task_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4350e9f287071e132238b87285a530805f32e9a6
|
| --- /dev/null
|
| +++ b/chrome/browser/task_management/providers/browser_process_task_unittest.cc
|
| @@ -0,0 +1,85 @@
|
| +// 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_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.
|
| + FAIL();
|
| + }
|
| +
|
| + 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);
|
| + ASSERT_NE(nullptr, provided_task_);
|
| +
|
| + 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_FALSE(provided_task_->ReportsNetworkUsage());
|
| + EXPECT_EQ(-1, 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_TRUE(provided_task_->ReportsNetworkUsage());
|
| + EXPECT_EQ(received_bytes, provided_task_->network_usage());
|
| +}
|
| +
|
| +} // namespace task_management
|
|
|