1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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_EQ(base::GetCurrentProcId(), provided_task_->process_id());
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());
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
|