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

Side by Side Diff: components/ukm/ukm_service_unittest.cc

Issue 2567263003: Basic UkmService implementation (Closed)
Patch Set: Rebase Created 3 years, 11 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
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "components/ukm/ukm_service.h"
6
7 #include "base/test/test_simple_task_runner.h"
8 #include "base/threading/thread_task_runner_handle.h"
9 #include "components/metrics/test_metrics_service_client.h"
10 #include "components/prefs/testing_pref_service.h"
11 #include "components/ukm/ukm_pref_names.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 namespace ukm {
15
16 namespace {
17
18 class UkmServiceTest : public testing::Test {
19 public:
20 UkmServiceTest()
21 : task_runner_(new base::TestSimpleTaskRunner),
22 task_runner_handle_(task_runner_) {
23 UkmService::RegisterPrefs(prefs_.registry());
24 prefs_.ClearPref(prefs::kUkmClientId);
25 prefs_.ClearPref(prefs::kUkmPersistedLogs);
26 }
27
28 int GetPersistedLogCount() {
29 const base::ListValue* list_value =
30 prefs_.GetList(prefs::kUkmPersistedLogs);
31 return list_value->GetSize();
32 }
33
34 protected:
35 TestingPrefServiceSimple prefs_;
36 metrics::TestMetricsServiceClient client_;
37
38 scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
39 base::ThreadTaskRunnerHandle task_runner_handle_;
40
41 private:
42 DISALLOW_COPY_AND_ASSIGN(UkmServiceTest);
43 };
44
45 } // namespace
46
47 TEST_F(UkmServiceTest, EnableDisableSchedule) {
48 UkmService service(&prefs_, &client_);
49 EXPECT_FALSE(task_runner_->HasPendingTask());
50 service.Initialize();
51 EXPECT_TRUE(task_runner_->HasPendingTask());
52 // Allow initialization to complete.
53 task_runner_->RunUntilIdle();
54 service.EnableReporting();
55 EXPECT_TRUE(task_runner_->HasPendingTask());
56 service.DisableReporting();
57 task_runner_->RunPendingTasks();
58 EXPECT_FALSE(task_runner_->HasPendingTask());
59 }
60
61 TEST_F(UkmServiceTest, PersistAndPurge) {
62 UkmService service(&prefs_, &client_);
63 EXPECT_EQ(GetPersistedLogCount(), 0);
64 service.Initialize();
65 task_runner_->RunUntilIdle();
66 service.EnableReporting();
67 // Should init, generate a log, and unsuccessfully attempt an upload.
68 task_runner_->RunPendingTasks();
69 // Flushes the generated log to disk and generates a new one.
70 service.Flush();
71 EXPECT_EQ(GetPersistedLogCount(), 2);
72 service.Purge();
73 EXPECT_EQ(GetPersistedLogCount(), 0);
74 }
75
76 } // namespace ukm
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698