OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include <algorithm> | 5 #include <algorithm> |
6 #include <string> | 6 #include <string> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
11 #include "base/files/scoped_temp_dir.h" | 11 #include "base/files/scoped_temp_dir.h" |
12 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
13 #include "base/time.h" | 13 #include "base/time.h" |
14 #include "chrome/browser/performance_monitor/database.h" | 14 #include "chrome/browser/performance_monitor/database.h" |
15 #include "chrome/browser/performance_monitor/key_builder.h" | 15 #include "chrome/browser/performance_monitor/key_builder.h" |
16 #include "chrome/browser/performance_monitor/metric.h" | 16 #include "chrome/browser/performance_monitor/metric.h" |
17 #include "chrome/browser/performance_monitor/performance_monitor_util.h" | 17 #include "chrome/browser/performance_monitor/performance_monitor_util.h" |
18 #include "chrome/common/extensions/extension.h" | 18 #include "chrome/common/extensions/extension.h" |
| 19 #include "chrome/common/extensions/manifest.h" |
19 #include "testing/gtest/include/gtest/gtest.h" | 20 #include "testing/gtest/include/gtest/gtest.h" |
20 #include "third_party/leveldatabase/src/include/leveldb/db.h" | 21 #include "third_party/leveldatabase/src/include/leveldb/db.h" |
21 #include "third_party/leveldatabase/src/include/leveldb/iterator.h" | 22 #include "third_party/leveldatabase/src/include/leveldb/iterator.h" |
22 | 23 |
23 using extensions::Extension; | 24 using extensions::Extension; |
| 25 using extensions::Manifest; |
24 | 26 |
25 namespace performance_monitor { | 27 namespace performance_monitor { |
26 | 28 |
27 // A class which is friended by Database, in order to hold the private methods | 29 // A class which is friended by Database, in order to hold the private methods |
28 // and avoid friending all the different test classes. | 30 // and avoid friending all the different test classes. |
29 class DatabaseTestHelper { | 31 class DatabaseTestHelper { |
30 public: | 32 public: |
31 explicit DatabaseTestHelper(Database* database) : database_(database) { }; | 33 explicit DatabaseTestHelper(Database* database) : database_(database) { }; |
32 ~DatabaseTestHelper() { }; | 34 ~DatabaseTestHelper() { }; |
33 | 35 |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
123 base::ScopedTempDir temp_dir_; | 125 base::ScopedTempDir temp_dir_; |
124 scoped_ptr<Event> install_event_1_; | 126 scoped_ptr<Event> install_event_1_; |
125 scoped_ptr<Event> install_event_2_; | 127 scoped_ptr<Event> install_event_2_; |
126 scoped_ptr<Event> uninstall_event_1_; | 128 scoped_ptr<Event> uninstall_event_1_; |
127 scoped_ptr<Event> uninstall_event_2_; | 129 scoped_ptr<Event> uninstall_event_2_; |
128 | 130 |
129 private: | 131 private: |
130 void InitEvents() { | 132 void InitEvents() { |
131 install_event_1_ = util::CreateExtensionEvent( | 133 install_event_1_ = util::CreateExtensionEvent( |
132 EVENT_EXTENSION_INSTALL, clock_->GetTime(), "a", "extension 1", | 134 EVENT_EXTENSION_INSTALL, clock_->GetTime(), "a", "extension 1", |
133 "http://foo.com", static_cast<int>(Extension::LOAD), "0.1", | 135 "http://foo.com", static_cast<int>(Manifest::LOAD), "0.1", |
134 "Test Test"); | 136 "Test Test"); |
135 install_event_2_ = util::CreateExtensionEvent( | 137 install_event_2_ = util::CreateExtensionEvent( |
136 EVENT_EXTENSION_INSTALL, clock_->GetTime(), "b", "extension 2", | 138 EVENT_EXTENSION_INSTALL, clock_->GetTime(), "b", "extension 2", |
137 "http://bar.com", static_cast<int>(Extension::LOAD), "0.1", | 139 "http://bar.com", static_cast<int>(Manifest::LOAD), "0.1", |
138 "Test Test"); | 140 "Test Test"); |
139 uninstall_event_1_ = util::CreateExtensionEvent( | 141 uninstall_event_1_ = util::CreateExtensionEvent( |
140 EVENT_EXTENSION_UNINSTALL, clock_->GetTime(), "a", "extension 1", | 142 EVENT_EXTENSION_UNINSTALL, clock_->GetTime(), "a", "extension 1", |
141 "http://foo.com", static_cast<int>(Extension::LOAD), "0.1", | 143 "http://foo.com", static_cast<int>(Manifest::LOAD), "0.1", |
142 "Test Test"); | 144 "Test Test"); |
143 uninstall_event_2_ = util::CreateExtensionEvent( | 145 uninstall_event_2_ = util::CreateExtensionEvent( |
144 EVENT_EXTENSION_UNINSTALL, clock_->GetTime(), "b", "extension 2", | 146 EVENT_EXTENSION_UNINSTALL, clock_->GetTime(), "b", "extension 2", |
145 "http://bar.com", static_cast<int>(Extension::LOAD), "0.1", | 147 "http://bar.com", static_cast<int>(Manifest::LOAD), "0.1", |
146 "Test Test"); | 148 "Test Test"); |
147 } | 149 } |
148 }; | 150 }; |
149 | 151 |
150 class PerformanceMonitorDatabaseMetricTest : public ::testing::Test { | 152 class PerformanceMonitorDatabaseMetricTest : public ::testing::Test { |
151 protected: | 153 protected: |
152 PerformanceMonitorDatabaseMetricTest() { | 154 PerformanceMonitorDatabaseMetricTest() { |
153 clock_ = new TestingClock(); | 155 clock_ = new TestingClock(); |
154 CHECK(temp_dir_.CreateUniqueTempDir()); | 156 CHECK(temp_dir_.CreateUniqueTempDir()); |
155 db_ = Database::Create(temp_dir_.path()); | 157 db_ = Database::Create(temp_dir_.path()); |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
349 events = db_->GetEvents(EVENT_EXTENSION_DISABLE, clock_->GetTime(), | 351 events = db_->GetEvents(EVENT_EXTENSION_DISABLE, clock_->GetTime(), |
350 clock_->GetTime()); | 352 clock_->GetTime()); |
351 ASSERT_TRUE(events.empty()); | 353 ASSERT_TRUE(events.empty()); |
352 } | 354 } |
353 | 355 |
354 TEST_F(PerformanceMonitorDatabaseEventTest, GetEventsTimeRange) { | 356 TEST_F(PerformanceMonitorDatabaseEventTest, GetEventsTimeRange) { |
355 base::Time start_time = clock_->GetTime(); | 357 base::Time start_time = clock_->GetTime(); |
356 scoped_ptr<Event> new_install_event = | 358 scoped_ptr<Event> new_install_event = |
357 util::CreateExtensionEvent(EVENT_EXTENSION_INSTALL, clock_->GetTime(), | 359 util::CreateExtensionEvent(EVENT_EXTENSION_INSTALL, clock_->GetTime(), |
358 "c", "test extension", "http://foo.com", | 360 "c", "test extension", "http://foo.com", |
359 static_cast<int>(Extension::LOAD), "0.1", | 361 static_cast<int>(Manifest::LOAD), "0.1", |
360 "Test Test"); | 362 "Test Test"); |
361 scoped_ptr<Event> new_uninstall_event = | 363 scoped_ptr<Event> new_uninstall_event = |
362 util::CreateExtensionEvent(EVENT_EXTENSION_UNINSTALL, clock_->GetTime(), | 364 util::CreateExtensionEvent(EVENT_EXTENSION_UNINSTALL, clock_->GetTime(), |
363 "c", "test extension", "http://foo.com", | 365 "c", "test extension", "http://foo.com", |
364 static_cast<int>(Extension::LOAD), "0.1", | 366 static_cast<int>(Manifest::LOAD), "0.1", |
365 "Test Test"); | 367 "Test Test"); |
366 base::Time end_time = clock_->GetTime(); | 368 base::Time end_time = clock_->GetTime(); |
367 db_->AddEvent(*new_install_event.get()); | 369 db_->AddEvent(*new_install_event.get()); |
368 db_->AddEvent(*new_uninstall_event.get()); | 370 db_->AddEvent(*new_uninstall_event.get()); |
369 Database::EventVector events = db_->GetEvents(start_time, end_time); | 371 Database::EventVector events = db_->GetEvents(start_time, end_time); |
370 ASSERT_EQ(2u, events.size()); | 372 ASSERT_EQ(2u, events.size()); |
371 EXPECT_TRUE(events[0]->data()->Equals(new_install_event->data())); | 373 EXPECT_TRUE(events[0]->data()->Equals(new_install_event->data())); |
372 EXPECT_TRUE(events[1]->data()->Equals(new_uninstall_event->data())); | 374 EXPECT_TRUE(events[1]->data()->Equals(new_uninstall_event->data())); |
373 events = db_->GetEvents( | 375 events = db_->GetEvents( |
374 EVENT_EXTENSION_INSTALL, start_time, end_time); | 376 EVENT_EXTENSION_INSTALL, start_time, end_time); |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
524 db_->AddMetric(kProcessChromeAggregate, | 526 db_->AddMetric(kProcessChromeAggregate, |
525 Metric(METRIC_CPU_USAGE, clock_->GetTime(), 21.0)); | 527 Metric(METRIC_CPU_USAGE, clock_->GetTime(), 21.0)); |
526 Database::MetricVector stats = | 528 Database::MetricVector stats = |
527 *db_->GetStatsForActivityAndMetric(METRIC_CPU_USAGE, start, end); | 529 *db_->GetStatsForActivityAndMetric(METRIC_CPU_USAGE, start, end); |
528 ASSERT_EQ(2u, stats.size()); | 530 ASSERT_EQ(2u, stats.size()); |
529 ASSERT_EQ(3, stats[0].value); | 531 ASSERT_EQ(3, stats[0].value); |
530 ASSERT_EQ(9, stats[1].value); | 532 ASSERT_EQ(9, stats[1].value); |
531 } | 533 } |
532 | 534 |
533 } // namespace performance_monitor | 535 } // namespace performance_monitor |
OLD | NEW |