Chromium Code Reviews| Index: chrome/browser/task_management/private/tasks_providers/browser_process/tests/browser_process_task_unittest.cc |
| diff --git a/chrome/browser/task_management/private/tasks_providers/browser_process/tests/browser_process_task_unittest.cc b/chrome/browser/task_management/private/tasks_providers/browser_process/tests/browser_process_task_unittest.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..dac980d64c1c77bf76db83adc7bfdfd7ef809564 |
| --- /dev/null |
| +++ b/chrome/browser/task_management/private/tasks_providers/browser_process/tests/browser_process_task_unittest.cc |
| @@ -0,0 +1,86 @@ |
| +// 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/private/tasks_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 {} |
|
ncarter (slow)
2015/03/27 18:16:21
FYI, You can safely omit this.
afakhry
2015/03/31 00:19:19
Yep, I know, thanks! :)
|
| + |
| + // task_management::TaskProviderObserver: |
| + void TaskAdded(const scoped_refptr<Task>& task) override { |
| + provided_task_ = task; |
| + } |
| + void TaskRemoved(const scoped_refptr<Task>& task) override { |
| + // This will never be called in the case of a browser process. |
| + EXPECT_FALSE(true); |
| + } |
| + |
| + protected: |
| + scoped_refptr<Task> provided_task_; |
|
ncarter (slow)
2015/03/27 18:16:21
FYI, though the style guide would prefer this to b
|
| + |
| + 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_.get()); |
| + provider.SetObserver(this); |
| + EXPECT_NE(nullptr, provided_task_.get()); |
| + provider.ClearObserver(); |
| + EXPECT_NE(nullptr, provided_task_.get()); |
| +} |
| + |
| +// Testing retrieving the task from the provider using the ids of a URL request. |
| +TEST_F(BrowserProcessTaskProviderTest, GetTaskOfUrlRequest) { |
| + scoped_ptr<TaskProvider> provider(new BrowserProcessTaskProvider); |
| + EXPECT_EQ(nullptr, provided_task_.get()); |
| + provider->SetObserver(this); |
| + EXPECT_NE(nullptr, provided_task_.get()); |
| + |
| + // If origin PID is anything other than 0, this will not return the browser |
| + // process task. |
|
ncarter (slow)
2015/03/27 18:16:21
Not required, but a good practice to keep in mind:
afakhry
2015/03/31 00:19:19
Removed.
ncarter (slow)
2015/03/31 22:31:32
I hope the removal wasn't due to my comment? To be
|
| + scoped_refptr<Task> result = provider->GetTaskOfUrlRequest(1, 0, 0); |
| + EXPECT_EQ(nullptr, result.get()); |
| + result = provider->GetTaskOfUrlRequest(0, -1, 0); |
| + EXPECT_EQ(provided_task_.get(), result.get()); |
| +} |
| + |
| +// Test the provided browser process task itself. |
| +TEST_F(BrowserProcessTaskProviderTest, TestProvidedTask) { |
| + scoped_ptr<TaskProvider> provider(new BrowserProcessTaskProvider); |
| + EXPECT_EQ(nullptr, provided_task_.get()); |
| + provider->SetObserver(this); |
| + EXPECT_NE(nullptr, provided_task_.get()); |
| + |
| + EXPECT_EQ(base::GetCurrentProcessHandle(), provided_task_->process_handle()); |
| + EXPECT_FALSE(provided_task_->ReportsWebCacheStats()); |
| + EXPECT_TRUE(provided_task_->is_first_in_group()); |
| + 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_->OnBytesRead(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 |