Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(539)

Side by Side Diff: chrome/browser/task_manager/task_manager_browsertest_util.h

Issue 1922683003: Make old task manager tests work against new task manager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_TASK_MANAGER_TASK_MANAGER_BROWSERTEST_UTIL_H_ 5 #ifndef CHROME_BROWSER_TASK_MANAGER_TASK_MANAGER_BROWSERTEST_UTIL_H_
6 #define CHROME_BROWSER_TASK_MANAGER_TASK_MANAGER_BROWSERTEST_UTIL_H_ 6 #define CHROME_BROWSER_TASK_MANAGER_TASK_MANAGER_BROWSERTEST_UTIL_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <memory>
11
10 #include "base/strings/string16.h" 12 #include "base/strings/string16.h"
11 13
14 namespace content {
15 class WebContents;
16 }
17
12 namespace task_manager { 18 namespace task_manager {
13 namespace browsertest_util { 19 namespace browsertest_util {
14 20
15 // For the old task manager browser tests, we must call this to disable the 21 // Specifies some integer-valued column of numeric data reported by the task
16 // use of the new implementation and revert back to the old one. 22 // manager model. Please add more here as needed by tests.
17 void EnableOldTaskManager(); 23 enum ColumnSpecifier {
24 V8_MEMORY,
25 V8_MEMORY_USED,
26 SQLITE_MEMORY_USED,
27
28 COLUMN_NONE, // Default value.
29 };
30
31 // An adapter that abstracts away the difference of old vs. new task manager.
32 class TaskManagerTesterInterface {
33 public:
34 virtual ~TaskManagerTesterInterface() {}
35
36 // Get the number of rows currently in the task manager.
37 virtual int GetRowCount() = 0;
38
39 // Get the title text of a particular |row|.
40 virtual base::string16 GetRowTitle(int row) = 0;
41
42 // Get the value of a column as an int64. Memory values are in bytes.
43 virtual int64_t GetColumnValue(ColumnSpecifier column, int row) = 0;
44
45 // If |row| is associated with a WebContents, return its SessionID. Otherwise,
46 // return -1.
47 virtual int32_t GetTabId(int row) = 0;
48
49 // Kill the process of |row|.
50 virtual void Kill(int row) = 0;
51 };
52
53 // Creates a TaskManagerTesterInterface backed by the current task manager.
54 std::unique_ptr<TaskManagerTesterInterface> GetTaskManagerTester();
18 55
19 // Runs the message loop, observing the task manager, until there are exactly 56 // Runs the message loop, observing the task manager, until there are exactly
20 // |resource_count| many resources whose titles match the pattern 57 // |resource_count| many resources whose titles match the pattern
21 // |title_pattern|. The match is done via string_util's base::MatchPattern, so 58 // |title_pattern|. The match is done via string_util's base::MatchPattern, so
22 // |title_pattern| may contain wildcards like "*". 59 // |title_pattern| may contain wildcards like "*".
23 // 60 //
24 // If the wait times out, this test will trigger a gtest failure. To get 61 // If the wait times out, this test will trigger a gtest failure. To get
25 // meaningful errors, tests should wrap invocations of this function with 62 // meaningful errors, tests should wrap invocations of this function with
26 // ASSERT_NO_FATAL_FAILURE(). 63 // ASSERT_NO_FATAL_FAILURE().
27 void WaitForTaskManagerRows(int resource_count, 64 void WaitForTaskManagerRows(int resource_count,
28 const base::string16& title_pattern); 65 const base::string16& title_pattern);
29 66
30 // Specifies some integer-valued column of numeric data reported by the task
31 // manager model. Please add more here as needed by tests.
32 enum ColumnSpecifier {
33 V8_MEMORY,
34 V8_MEMORY_USED,
35 SQLITE_MEMORY_USED,
36
37 COLUMN_NONE, // Default value.
38 };
39
40 // Waits for the row identified by |title_pattern| to be showing a numeric data 67 // Waits for the row identified by |title_pattern| to be showing a numeric data
41 // value of at least |min_column_value| in the task manager column identified by 68 // value of at least |min_column_value| in the task manager column identified by
42 // |column_specifier|. As with WaitForTaskManagerRows(), |title_pattern| is 69 // |column_specifier|. As with WaitForTaskManagerRows(), |title_pattern| is
43 // meant to be a string returned by MatchTab() or similar. 70 // meant to be a string returned by MatchTab() or similar.
44 // 71 //
45 // To get meaningful errors, tests should wrap invocations of this function with 72 // To get meaningful errors, tests should wrap invocations of this function with
46 // ASSERT_NO_FATAL_FAILURE(). 73 // ASSERT_NO_FATAL_FAILURE().
47 void WaitForTaskManagerStatToExceed(const base::string16& title_pattern, 74 void WaitForTaskManagerStatToExceed(const base::string16& title_pattern,
48 ColumnSpecifier column_specifier, 75 ColumnSpecifier column_specifier,
49 size_t min_column_value); 76 size_t min_column_value);
(...skipping 15 matching lines...) Expand all
65 base::string16 MatchSubframe(const char* title); // "Subframe: " + title 92 base::string16 MatchSubframe(const char* title); // "Subframe: " + title
66 base::string16 MatchAnySubframe(); // "Subframe: *" 93 base::string16 MatchAnySubframe(); // "Subframe: *"
67 // "Utility: " + title 94 // "Utility: " + title
68 base::string16 MatchUtility(const base::string16& title); 95 base::string16 MatchUtility(const base::string16& title);
69 base::string16 MatchAnyUtility(); // "Utility: *" 96 base::string16 MatchAnyUtility(); // "Utility: *"
70 97
71 } // namespace browsertest_util 98 } // namespace browsertest_util
72 } // namespace task_manager 99 } // namespace task_manager
73 100
74 #endif // CHROME_BROWSER_TASK_MANAGER_TASK_MANAGER_BROWSERTEST_UTIL_H_ 101 #endif // CHROME_BROWSER_TASK_MANAGER_TASK_MANAGER_BROWSERTEST_UTIL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698