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

Side by Side Diff: components/feature_engagement_tracker/internal/feature_engagement_tracker_impl_unittest.cc

Issue 2911123003: Metrics for feature engagement tracker. (Closed)
Patch Set: Created 3 years, 6 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 2017 The Chromium Authors. All rights reserved. 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 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 "components/feature_engagement_tracker/internal/feature_engagement_trac ker_impl.h" 5 #include "components/feature_engagement_tracker/internal/feature_engagement_trac ker_impl.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/feature_list.h" 10 #include "base/feature_list.h"
11 #include "base/memory/ptr_util.h" 11 #include "base/memory/ptr_util.h"
12 #include "base/message_loop/message_loop.h" 12 #include "base/message_loop/message_loop.h"
13 #include "base/run_loop.h" 13 #include "base/run_loop.h"
14 #include "base/sequenced_task_runner.h" 14 #include "base/sequenced_task_runner.h"
15 #include "base/single_thread_task_runner.h" 15 #include "base/single_thread_task_runner.h"
16 #include "base/test/user_action_tester.h"
16 #include "base/threading/thread_task_runner_handle.h" 17 #include "base/threading/thread_task_runner_handle.h"
17 #include "components/feature_engagement_tracker/internal/availability_model_impl .h" 18 #include "components/feature_engagement_tracker/internal/availability_model_impl .h"
18 #include "components/feature_engagement_tracker/internal/editable_configuration. h" 19 #include "components/feature_engagement_tracker/internal/editable_configuration. h"
19 #include "components/feature_engagement_tracker/internal/in_memory_store.h" 20 #include "components/feature_engagement_tracker/internal/in_memory_store.h"
20 #include "components/feature_engagement_tracker/internal/model_impl.h" 21 #include "components/feature_engagement_tracker/internal/model_impl.h"
21 #include "components/feature_engagement_tracker/internal/never_availability_mode l.h" 22 #include "components/feature_engagement_tracker/internal/never_availability_mode l.h"
22 #include "components/feature_engagement_tracker/internal/never_storage_validator .h" 23 #include "components/feature_engagement_tracker/internal/never_storage_validator .h"
23 #include "components/feature_engagement_tracker/internal/once_condition_validato r.h" 24 #include "components/feature_engagement_tracker/internal/once_condition_validato r.h"
25 #include "components/feature_engagement_tracker/internal/stats.h"
24 #include "components/feature_engagement_tracker/internal/time_provider.h" 26 #include "components/feature_engagement_tracker/internal/time_provider.h"
25 #include "testing/gtest/include/gtest/gtest.h" 27 #include "testing/gtest/include/gtest/gtest.h"
26 28
27 namespace feature_engagement_tracker { 29 namespace feature_engagement_tracker {
28 30
29 namespace { 31 namespace {
30 const base::Feature kTestFeatureFoo{"test_foo", 32 const base::Feature kTestFeatureFoo{"test_foo",
31 base::FEATURE_DISABLED_BY_DEFAULT}; 33 base::FEATURE_DISABLED_BY_DEFAULT};
32 const base::Feature kTestFeatureBar{"test_bar", 34 const base::Feature kTestFeatureBar{"test_bar",
33 base::FEATURE_DISABLED_BY_DEFAULT}; 35 base::FEATURE_DISABLED_BY_DEFAULT};
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 VerifyEventTriggerEvents(kTestFeatureBar, 1u); 434 VerifyEventTriggerEvents(kTestFeatureBar, 1u);
433 EXPECT_FALSE(tracker_->ShouldTriggerHelpUI(kTestFeatureQux)); 435 EXPECT_FALSE(tracker_->ShouldTriggerHelpUI(kTestFeatureQux));
434 VerifyEventTriggerEvents(kTestFeatureQux, 0); 436 VerifyEventTriggerEvents(kTestFeatureQux, 0);
435 } 437 }
436 438
437 TEST_F(FeatureEngagementTrackerImplTest, TestNotifyEvent) { 439 TEST_F(FeatureEngagementTrackerImplTest, TestNotifyEvent) {
438 StoringInitializedCallback callback; 440 StoringInitializedCallback callback;
439 tracker_->AddOnInitializedCallback(base::Bind( 441 tracker_->AddOnInitializedCallback(base::Bind(
440 &StoringInitializedCallback::OnInitialized, base::Unretained(&callback))); 442 &StoringInitializedCallback::OnInitialized, base::Unretained(&callback)));
441 base::RunLoop().RunUntilIdle(); 443 base::RunLoop().RunUntilIdle();
444 base::UserActionTester user_action_tester;
442 445
443 tracker_->NotifyEvent("foo"); 446 tracker_->NotifyEvent("foo");
444 tracker_->NotifyEvent("foo"); 447 tracker_->NotifyEvent("foo");
445 tracker_->NotifyEvent("bar"); 448 tracker_->NotifyEvent("bar");
449 tracker_->NotifyEvent(kTestFeatureFoo.name + std::string("_used"));
450 tracker_->NotifyEvent(kTestFeatureFoo.name + std::string("_trigger"));
451
452 // Used event will record both NotifyEvent and NotifyUsedEvent. Explicitly
453 // specify the whole user action string here.
454 EXPECT_EQ(1, user_action_tester.GetActionCount(
455 "InProductHelp.NotifyUsedEvent.test_foo"));
456 EXPECT_EQ(2, user_action_tester.GetActionCount(
457 "InProductHelp.NotifyEvent.test_foo"));
458 EXPECT_EQ(0, user_action_tester.GetActionCount(
459 "InProductHelp.NotifyUsedEvent.test_bar"));
460 EXPECT_EQ(0, user_action_tester.GetActionCount(
461 "InProductHelp.NotifyEvent.test_bar"));
446 462
447 Event foo_event = store_->GetEvent("foo"); 463 Event foo_event = store_->GetEvent("foo");
448 ASSERT_EQ(1, foo_event.events_size()); 464 ASSERT_EQ(1, foo_event.events_size());
449 EXPECT_EQ(1u, foo_event.events(0).day()); 465 EXPECT_EQ(1u, foo_event.events(0).day());
450 EXPECT_EQ(2u, foo_event.events(0).count()); 466 EXPECT_EQ(2u, foo_event.events(0).count());
451 467
452 Event bar_event = store_->GetEvent("bar"); 468 Event bar_event = store_->GetEvent("bar");
453 ASSERT_EQ(1, bar_event.events_size()); 469 ASSERT_EQ(1, bar_event.events_size());
454 EXPECT_EQ(1u, bar_event.events(0).day()); 470 EXPECT_EQ(1u, bar_event.events(0).day());
455 EXPECT_EQ(1u, bar_event.events(0).count()); 471 EXPECT_EQ(1u, bar_event.events(0).count());
456 } 472 }
457 473
458 } // namespace feature_engagement_tracker 474 } // namespace feature_engagement_tracker
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698