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

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

Issue 2883563002: Refactor UKM interface for mojo-ification (Closed)
Patch Set: Move interface to next CL 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 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 country_weight["de"] = 0.07f; 172 country_weight["de"] = 0.07f;
175 country_weight["ca"] = 0.08f; 173 country_weight["ca"] = 0.08f;
176 country_weight["cn"] = 0.09f; 174 country_weight["cn"] = 0.09f;
177 175
178 auto& locale_weight = *details->mutable_locale_weight(); 176 auto& locale_weight = *details->mutable_locale_weight();
179 locale_weight["en-us"] = 0.10f; 177 locale_weight["en-us"] = 0.10f;
180 locale_weight["en-ca"] = 0.11f; 178 locale_weight["en-ca"] = 0.11f;
181 locale_weight["zh-cn"] = 0.12f; // Normalized to lowercase. 179 locale_weight["zh-cn"] = 0.12f; // Normalized to lowercase.
182 180
183 auto impl = base::MakeUnique<TranslateRankerImpl>(base::FilePath(), GURL(), 181 auto impl = base::MakeUnique<TranslateRankerImpl>(base::FilePath(), GURL(),
184 GetTestUkmService()); 182 GetTestUkmRecorder());
185 impl->OnModelAvailable(std::move(model)); 183 impl->OnModelAvailable(std::move(model));
186 base::RunLoop().RunUntilIdle(); 184 base::RunLoop().RunUntilIdle();
187 return impl; 185 return impl;
188 } 186 }
189 187
190 // static 188 // static
191 double TranslateRankerImplTest::Sigmoid(double x) { 189 double TranslateRankerImplTest::Sigmoid(double x) {
192 return 1.0 / (1.0 + exp(-x)); 190 return 1.0 / (1.0 + exp(-x));
193 } 191 }
194 192
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 ASSERT_EQ(0, flushed_events[0].event_type()); 351 ASSERT_EQ(0, flushed_events[0].event_type());
354 ASSERT_EQ(tep2_.source_language(), flushed_events[1].source_language()); 352 ASSERT_EQ(tep2_.source_language(), flushed_events[1].source_language());
355 ASSERT_EQ(1, flushed_events[1].event_type()); 353 ASSERT_EQ(1, flushed_events[1].event_type());
356 ASSERT_EQ(tep3_.source_language(), flushed_events[2].source_language()); 354 ASSERT_EQ(tep3_.source_language(), flushed_events[2].source_language());
357 ASSERT_EQ(2, flushed_events[2].event_type()); 355 ASSERT_EQ(2, flushed_events[2].event_type());
358 356
359 // Check that the cache has been cleared. 357 // Check that the cache has been cleared.
360 ranker->FlushTranslateEvents(&flushed_events); 358 ranker->FlushTranslateEvents(&flushed_events);
361 EXPECT_EQ(0U, flushed_events.size()); 359 EXPECT_EQ(0U, flushed_events.size());
362 360
363 ASSERT_EQ(2U, GetTestUkmService()->sources_count()); 361 ASSERT_EQ(2U, GetTestUkmRecorder()->sources_count());
364 EXPECT_EQ( 362 EXPECT_EQ(
365 url0.spec(), 363 url0.spec(),
366 GetTestUkmService()->GetSourceForUrl(url0.spec().c_str())->url().spec()); 364 GetTestUkmRecorder()->GetSourceForUrl(url0.spec().c_str())->url().spec());
367 EXPECT_EQ( 365 EXPECT_EQ(
368 url1.spec(), 366 url1.spec(),
369 GetTestUkmService()->GetSourceForUrl(url1.spec().c_str())->url().spec()); 367 GetTestUkmRecorder()->GetSourceForUrl(url1.spec().c_str())->url().spec());
370 } 368 }
371 369
372 TEST_F(TranslateRankerImplTest, LoggingDisabledViaOverride) { 370 TEST_F(TranslateRankerImplTest, LoggingDisabledViaOverride) {
373 std::unique_ptr<translate::TranslateRankerImpl> ranker = 371 std::unique_ptr<translate::TranslateRankerImpl> ranker =
374 GetRankerForTest(0.0f); 372 GetRankerForTest(0.0f);
375 std::vector<metrics::TranslateEventProto> flushed_events; 373 std::vector<metrics::TranslateEventProto> flushed_events;
376 374
377 ranker->FlushTranslateEvents(&flushed_events); 375 ranker->FlushTranslateEvents(&flushed_events);
378 EXPECT_EQ(0U, flushed_events.size()); 376 EXPECT_EQ(0U, flushed_events.size());
379 377
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 EXPECT_TRUE(ranker->ShouldOverrideDecision(2, GURL(), &tep)); 421 EXPECT_TRUE(ranker->ShouldOverrideDecision(2, GURL(), &tep));
424 422
425 std::vector<metrics::TranslateEventProto> flushed_events; 423 std::vector<metrics::TranslateEventProto> flushed_events;
426 ranker->FlushTranslateEvents(&flushed_events); 424 ranker->FlushTranslateEvents(&flushed_events);
427 EXPECT_EQ(0U, flushed_events.size()); 425 EXPECT_EQ(0U, flushed_events.size());
428 ASSERT_EQ(2, tep.decision_overrides_size()); 426 ASSERT_EQ(2, tep.decision_overrides_size());
429 ASSERT_EQ(1, tep.decision_overrides(0)); 427 ASSERT_EQ(1, tep.decision_overrides(0));
430 ASSERT_EQ(2, tep.decision_overrides(1)); 428 ASSERT_EQ(2, tep.decision_overrides(1));
431 ASSERT_EQ(0, tep.event_type()); 429 ASSERT_EQ(0, tep.event_type());
432 } 430 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698