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

Side by Side Diff: components/translate/core/browser/translate_ranker_impl_unittest.cc

Issue 2883563002: Refactor UKM interface for mojo-ification (Closed)
Patch Set: Fix uma_session_stats.cc Created 3 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/translate/core/browser/translate_ranker_impl.h" 5 #include "components/translate/core/browser/translate_ranker_impl.h"
6 6
7 #include <initializer_list> 7 #include <initializer_list>
8 #include <memory> 8 #include <memory>
9 9
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/run_loop.h" 12 #include "base/run_loop.h"
13 #include "base/strings/stringprintf.h" 13 #include "base/strings/stringprintf.h"
14 #include "base/task_scheduler/post_task.h" 14 #include "base/task_scheduler/post_task.h"
15 #include "base/test/scoped_feature_list.h" 15 #include "base/test/scoped_feature_list.h"
16 #include "base/test/scoped_task_environment.h" 16 #include "base/test/scoped_task_environment.h"
17 #include "components/metrics/proto/translate_event.pb.h" 17 #include "components/metrics/proto/translate_event.pb.h"
18 #include "components/metrics/proto/ukm/source.pb.h" 18 #include "components/metrics/proto/ukm/source.pb.h"
19 #include "components/prefs/scoped_user_pref_update.h" 19 #include "components/prefs/scoped_user_pref_update.h"
20 #include "components/sync_preferences/testing_pref_service_syncable.h" 20 #include "components/sync_preferences/testing_pref_service_syncable.h"
21 #include "components/translate/core/browser/proto/ranker_model.pb.h" 21 #include "components/translate/core/browser/proto/ranker_model.pb.h"
22 #include "components/translate/core/browser/proto/translate_ranker_model.pb.h" 22 #include "components/translate/core/browser/proto/translate_ranker_model.pb.h"
23 #include "components/translate/core/browser/ranker_model.h" 23 #include "components/translate/core/browser/ranker_model.h"
24 #include "components/translate/core/browser/translate_download_manager.h" 24 #include "components/translate/core/browser/translate_download_manager.h"
25 #include "components/translate/core/browser/translate_prefs.h" 25 #include "components/translate/core/browser/translate_prefs.h"
26 #include "components/ukm/test_ukm_service.h" 26 #include "components/ukm/test_ukm_recorder.h"
27 #include "components/ukm/ukm_source.h" 27 #include "components/ukm/ukm_source.h"
28 #include "net/url_request/test_url_fetcher_factory.h" 28 #include "net/url_request/test_url_fetcher_factory.h"
29 #include "net/url_request/url_request_test_util.h" 29 #include "net/url_request/url_request_test_util.h"
30 #include "testing/gtest/include/gtest/gtest.h" 30 #include "testing/gtest/include/gtest/gtest.h"
31 #include "url/gurl.h" 31 #include "url/gurl.h"
32 32
33 namespace { 33 namespace {
34 34
35 using translate::kTranslateRankerEnforcement; 35 using translate::kTranslateRankerEnforcement;
36 using translate::kTranslateRankerQuery; 36 using translate::kTranslateRankerQuery;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 int decline_count, 68 int decline_count,
69 int ignore_count); 69 int ignore_count);
70 70
71 // The platform-specific name of the preferred language pref. 71 // The platform-specific name of the preferred language pref.
72 static const char* const kPreferredLanguagePref; 72 static const char* const kPreferredLanguagePref;
73 73
74 // Prefs. 74 // Prefs.
75 std::unique_ptr<sync_preferences::TestingPrefServiceSyncable> prefs_; 75 std::unique_ptr<sync_preferences::TestingPrefServiceSyncable> prefs_;
76 std::unique_ptr<translate::TranslatePrefs> translate_prefs_; 76 std::unique_ptr<translate::TranslatePrefs> translate_prefs_;
77 77
78 ukm::TestUkmService* GetTestUkmService() { 78 ukm::TestUkmRecorder* GetTestUkmRecorder() { return &test_ukm_recorder_; }
79 return ukm_service_test_harness_.test_ukm_service();
80 }
81 metrics::TranslateEventProto tep1_ = 79 metrics::TranslateEventProto tep1_ =
82 CreateTranslateEvent("fr", "en", 1, 0, 3); 80 CreateTranslateEvent("fr", "en", 1, 0, 3);
83 metrics::TranslateEventProto tep2_ = 81 metrics::TranslateEventProto tep2_ =
84 CreateTranslateEvent("jp", "en", 2, 0, 3); 82 CreateTranslateEvent("jp", "en", 2, 0, 3);
85 metrics::TranslateEventProto tep3_ = 83 metrics::TranslateEventProto tep3_ =
86 CreateTranslateEvent("es", "de", 4, 5, 6); 84 CreateTranslateEvent("es", "de", 4, 5, 6);
87 85
88 private: 86 private:
89 ukm::UkmServiceTestingHarness ukm_service_test_harness_; 87 ukm::TestUkmRecorder test_ukm_recorder_;
90 88
91 // Override the default URL fetcher to return custom responses for tests. 89 // Override the default URL fetcher to return custom responses for tests.
92 net::TestURLFetcherFactory url_fetcher_factory_; 90 net::TestURLFetcherFactory url_fetcher_factory_;
93 91
94 // Used to initialize the translate download manager. 92 // Used to initialize the translate download manager.
95 scoped_refptr<net::TestURLRequestContextGetter> request_context_; 93 scoped_refptr<net::TestURLRequestContextGetter> request_context_;
96 94
97 // Sets up the task scheduling/task-runner environment for each test. 95 // Sets up the task scheduling/task-runner environment for each test.
98 base::test::ScopedTaskEnvironment scoped_task_environment_; 96 base::test::ScopedTaskEnvironment scoped_task_environment_;
99 97
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 country_weight["de"] = 0.07f; 175 country_weight["de"] = 0.07f;
178 country_weight["ca"] = 0.08f; 176 country_weight["ca"] = 0.08f;
179 country_weight["cn"] = 0.09f; 177 country_weight["cn"] = 0.09f;
180 178
181 auto& locale_weight = *details->mutable_locale_weight(); 179 auto& locale_weight = *details->mutable_locale_weight();
182 locale_weight["en-us"] = 0.10f; 180 locale_weight["en-us"] = 0.10f;
183 locale_weight["en-ca"] = 0.11f; 181 locale_weight["en-ca"] = 0.11f;
184 locale_weight["zh-cn"] = 0.12f; // Normalized to lowercase. 182 locale_weight["zh-cn"] = 0.12f; // Normalized to lowercase.
185 183
186 auto impl = base::MakeUnique<TranslateRankerImpl>(base::FilePath(), GURL(), 184 auto impl = base::MakeUnique<TranslateRankerImpl>(base::FilePath(), GURL(),
187 GetTestUkmService()); 185 GetTestUkmRecorder());
188 impl->OnModelAvailable(std::move(model)); 186 impl->OnModelAvailable(std::move(model));
189 base::RunLoop().RunUntilIdle(); 187 base::RunLoop().RunUntilIdle();
190 return impl; 188 return impl;
191 } 189 }
192 190
193 // static 191 // static
194 double TranslateRankerImplTest::Sigmoid(double x) { 192 double TranslateRankerImplTest::Sigmoid(double x) {
195 return 1.0 / (1.0 + exp(-x)); 193 return 1.0 / (1.0 + exp(-x));
196 } 194 }
197 195
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 ASSERT_EQ(0, flushed_events[0].event_type()); 362 ASSERT_EQ(0, flushed_events[0].event_type());
365 ASSERT_EQ(tep2_.source_language(), flushed_events[1].source_language()); 363 ASSERT_EQ(tep2_.source_language(), flushed_events[1].source_language());
366 ASSERT_EQ(1, flushed_events[1].event_type()); 364 ASSERT_EQ(1, flushed_events[1].event_type());
367 ASSERT_EQ(tep3_.source_language(), flushed_events[2].source_language()); 365 ASSERT_EQ(tep3_.source_language(), flushed_events[2].source_language());
368 ASSERT_EQ(2, flushed_events[2].event_type()); 366 ASSERT_EQ(2, flushed_events[2].event_type());
369 367
370 // Check that the cache has been cleared. 368 // Check that the cache has been cleared.
371 ranker->FlushTranslateEvents(&flushed_events); 369 ranker->FlushTranslateEvents(&flushed_events);
372 EXPECT_EQ(0U, flushed_events.size()); 370 EXPECT_EQ(0U, flushed_events.size());
373 371
374 ASSERT_EQ(2U, GetTestUkmService()->sources_count()); 372 ASSERT_EQ(2U, GetTestUkmRecorder()->sources_count());
375 EXPECT_EQ( 373 EXPECT_EQ(
376 url0.spec(), 374 url0.spec(),
377 GetTestUkmService()->GetSourceForUrl(url0.spec().c_str())->url().spec()); 375 GetTestUkmRecorder()->GetSourceForUrl(url0.spec().c_str())->url().spec());
378 EXPECT_EQ( 376 EXPECT_EQ(
379 url1.spec(), 377 url1.spec(),
380 GetTestUkmService()->GetSourceForUrl(url1.spec().c_str())->url().spec()); 378 GetTestUkmRecorder()->GetSourceForUrl(url1.spec().c_str())->url().spec());
381 } 379 }
382 380
383 TEST_F(TranslateRankerImplTest, LoggingDisabledViaOverride) { 381 TEST_F(TranslateRankerImplTest, LoggingDisabledViaOverride) {
384 std::unique_ptr<translate::TranslateRankerImpl> ranker = 382 std::unique_ptr<translate::TranslateRankerImpl> ranker =
385 GetRankerForTest(0.0f); 383 GetRankerForTest(0.0f);
386 std::vector<metrics::TranslateEventProto> flushed_events; 384 std::vector<metrics::TranslateEventProto> flushed_events;
387 385
388 ranker->FlushTranslateEvents(&flushed_events); 386 ranker->FlushTranslateEvents(&flushed_events);
389 EXPECT_EQ(0U, flushed_events.size()); 387 EXPECT_EQ(0U, flushed_events.size());
390 388
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 EXPECT_TRUE(ranker->ShouldOverrideDecision(2, GURL(), &tep)); 432 EXPECT_TRUE(ranker->ShouldOverrideDecision(2, GURL(), &tep));
435 433
436 std::vector<metrics::TranslateEventProto> flushed_events; 434 std::vector<metrics::TranslateEventProto> flushed_events;
437 ranker->FlushTranslateEvents(&flushed_events); 435 ranker->FlushTranslateEvents(&flushed_events);
438 EXPECT_EQ(0U, flushed_events.size()); 436 EXPECT_EQ(0U, flushed_events.size());
439 ASSERT_EQ(2, tep.decision_overrides_size()); 437 ASSERT_EQ(2, tep.decision_overrides_size());
440 ASSERT_EQ(1, tep.decision_overrides(0)); 438 ASSERT_EQ(1, tep.decision_overrides(0));
441 ASSERT_EQ(2, tep.decision_overrides(1)); 439 ASSERT_EQ(2, tep.decision_overrides(1));
442 ASSERT_EQ(0, tep.event_type()); 440 ASSERT_EQ(0, tep.event_type());
443 } 441 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698