OLD | NEW |
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" |
(...skipping 16 matching lines...) Expand all Loading... |
27 #include "components/ukm/test_ukm_service.h" | 27 #include "components/ukm/test_ukm_service.h" |
28 #include "components/ukm/ukm_source.h" | 28 #include "components/ukm/ukm_source.h" |
29 #include "net/url_request/test_url_fetcher_factory.h" | 29 #include "net/url_request/test_url_fetcher_factory.h" |
30 #include "net/url_request/url_request_test_util.h" | 30 #include "net/url_request/url_request_test_util.h" |
31 #include "testing/gtest/include/gtest/gtest.h" | 31 #include "testing/gtest/include/gtest/gtest.h" |
32 #include "url/gurl.h" | 32 #include "url/gurl.h" |
33 | 33 |
34 namespace { | 34 namespace { |
35 | 35 |
36 using translate::kTranslateRankerEnforcement; | 36 using translate::kTranslateRankerEnforcement; |
37 using translate::kTranslateRankerLogging; | |
38 using translate::kTranslateRankerQuery; | 37 using translate::kTranslateRankerQuery; |
39 using translate::kTranslateRankerDecisionOverride; | 38 using translate::kTranslateRankerDecisionOverride; |
40 using translate::TranslateDownloadManager; | 39 using translate::TranslateDownloadManager; |
41 using translate::TranslateRankerFeatures; | 40 using translate::TranslateRankerFeatures; |
42 using translate::TranslatePrefs; | 41 using translate::TranslatePrefs; |
43 using translate::TranslateRankerImpl; | 42 using translate::TranslateRankerImpl; |
44 | 43 |
45 constexpr uint32_t kModelVersion = 1234; | 44 constexpr uint32_t kModelVersion = 1234; |
46 | 45 |
47 class TranslateRankerImplTest : public ::testing::Test { | 46 class TranslateRankerImplTest : public ::testing::Test { |
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 metrics::TranslateEventProto tep; | 326 metrics::TranslateEventProto tep; |
328 // If we don't have a model, returns true. | 327 // If we don't have a model, returns true. |
329 EXPECT_TRUE( | 328 EXPECT_TRUE( |
330 ranker->ShouldOfferTranslation(*translate_prefs_, "en", "fr", &tep)); | 329 ranker->ShouldOfferTranslation(*translate_prefs_, "en", "fr", &tep)); |
331 EXPECT_NE(0U, tep.ranker_request_timestamp_sec()); | 330 EXPECT_NE(0U, tep.ranker_request_timestamp_sec()); |
332 EXPECT_EQ(0U, tep.ranker_version()); | 331 EXPECT_EQ(0U, tep.ranker_version()); |
333 EXPECT_EQ(metrics::TranslateEventProto::NOT_QUERIED, tep.ranker_response()); | 332 EXPECT_EQ(metrics::TranslateEventProto::NOT_QUERIED, tep.ranker_response()); |
334 } | 333 } |
335 | 334 |
336 TEST_F(TranslateRankerImplTest, RecordAndFlushEvents) { | 335 TEST_F(TranslateRankerImplTest, RecordAndFlushEvents) { |
337 InitFeatures({kTranslateRankerLogging}, {}); | |
338 std::unique_ptr<translate::TranslateRanker> ranker = GetRankerForTest(0.0f); | 336 std::unique_ptr<translate::TranslateRanker> ranker = GetRankerForTest(0.0f); |
339 std::vector<metrics::TranslateEventProto> flushed_events; | 337 std::vector<metrics::TranslateEventProto> flushed_events; |
340 | 338 |
341 GURL url0("https://www.google.com"); | 339 GURL url0("https://www.google.com"); |
342 GURL url1("https://www.gmail.com"); | 340 GURL url1("https://www.gmail.com"); |
343 | 341 |
344 // Check that flushing an empty cache will return an empty vector. | 342 // Check that flushing an empty cache will return an empty vector. |
345 ranker->FlushTranslateEvents(&flushed_events); | 343 ranker->FlushTranslateEvents(&flushed_events); |
346 EXPECT_EQ(0U, flushed_events.size()); | 344 EXPECT_EQ(0U, flushed_events.size()); |
347 | 345 |
(...skipping 17 matching lines...) Expand all Loading... |
365 | 363 |
366 ASSERT_EQ(2U, GetTestUkmService()->sources_count()); | 364 ASSERT_EQ(2U, GetTestUkmService()->sources_count()); |
367 EXPECT_EQ( | 365 EXPECT_EQ( |
368 url0.spec(), | 366 url0.spec(), |
369 GetTestUkmService()->GetSourceForUrl(url0.spec().c_str())->url().spec()); | 367 GetTestUkmService()->GetSourceForUrl(url0.spec().c_str())->url().spec()); |
370 EXPECT_EQ( | 368 EXPECT_EQ( |
371 url1.spec(), | 369 url1.spec(), |
372 GetTestUkmService()->GetSourceForUrl(url1.spec().c_str())->url().spec()); | 370 GetTestUkmService()->GetSourceForUrl(url1.spec().c_str())->url().spec()); |
373 } | 371 } |
374 | 372 |
375 TEST_F(TranslateRankerImplTest, LoggingDisabled) { | |
376 InitFeatures({}, {kTranslateRankerLogging}); | |
377 std::unique_ptr<translate::TranslateRanker> ranker = GetRankerForTest(0.0f); | |
378 std::vector<metrics::TranslateEventProto> flushed_events; | |
379 | |
380 ranker->FlushTranslateEvents(&flushed_events); | |
381 EXPECT_EQ(0U, flushed_events.size()); | |
382 | |
383 ranker->RecordTranslateEvent(0, GURL(), &tep1_); | |
384 ranker->RecordTranslateEvent(1, GURL(), &tep2_); | |
385 ranker->RecordTranslateEvent(2, GURL(), &tep3_); | |
386 | |
387 // Logging is disabled, so no events should be cached. | |
388 ranker->FlushTranslateEvents(&flushed_events); | |
389 EXPECT_EQ(0U, flushed_events.size()); | |
390 EXPECT_EQ(0ul, GetTestUkmService()->sources_count()); | |
391 } | |
392 | |
393 TEST_F(TranslateRankerImplTest, LoggingDisabledViaOverride) { | 373 TEST_F(TranslateRankerImplTest, LoggingDisabledViaOverride) { |
394 InitFeatures({kTranslateRankerLogging}, {}); | |
395 std::unique_ptr<translate::TranslateRankerImpl> ranker = | 374 std::unique_ptr<translate::TranslateRankerImpl> ranker = |
396 GetRankerForTest(0.0f); | 375 GetRankerForTest(0.0f); |
397 std::vector<metrics::TranslateEventProto> flushed_events; | 376 std::vector<metrics::TranslateEventProto> flushed_events; |
398 | 377 |
399 ranker->FlushTranslateEvents(&flushed_events); | 378 ranker->FlushTranslateEvents(&flushed_events); |
400 EXPECT_EQ(0U, flushed_events.size()); | 379 EXPECT_EQ(0U, flushed_events.size()); |
401 | 380 |
402 ranker->RecordTranslateEvent(0, GURL(), &tep1_); | 381 ranker->RecordTranslateEvent(0, GURL(), &tep1_); |
403 ranker->RecordTranslateEvent(1, GURL(), &tep2_); | 382 ranker->RecordTranslateEvent(1, GURL(), &tep2_); |
404 ranker->RecordTranslateEvent(2, GURL(), &tep3_); | 383 ranker->RecordTranslateEvent(2, GURL(), &tep3_); |
405 | 384 |
406 // Logging is disabled, so no events should be cached. | 385 // Logging is enabled by default, so events should be cached. |
407 ranker->FlushTranslateEvents(&flushed_events); | 386 ranker->FlushTranslateEvents(&flushed_events); |
408 EXPECT_EQ(3U, flushed_events.size()); | 387 EXPECT_EQ(3U, flushed_events.size()); |
409 | 388 |
410 // Override the feature setting to disable logging. | 389 // Override the feature setting to disable logging. |
411 ranker->EnableLogging(false); | 390 ranker->EnableLogging(false); |
412 | 391 |
413 ranker->RecordTranslateEvent(0, GURL(), &tep1_); | 392 ranker->RecordTranslateEvent(0, GURL(), &tep1_); |
414 ranker->RecordTranslateEvent(1, GURL(), &tep2_); | 393 ranker->RecordTranslateEvent(1, GURL(), &tep2_); |
415 ranker->RecordTranslateEvent(2, GURL(), &tep3_); | 394 ranker->RecordTranslateEvent(2, GURL(), &tep3_); |
416 | 395 |
(...skipping 28 matching lines...) Expand all Loading... |
445 EXPECT_TRUE(ranker->ShouldOverrideDecision(2, GURL(), &tep)); | 424 EXPECT_TRUE(ranker->ShouldOverrideDecision(2, GURL(), &tep)); |
446 | 425 |
447 std::vector<metrics::TranslateEventProto> flushed_events; | 426 std::vector<metrics::TranslateEventProto> flushed_events; |
448 ranker->FlushTranslateEvents(&flushed_events); | 427 ranker->FlushTranslateEvents(&flushed_events); |
449 EXPECT_EQ(0U, flushed_events.size()); | 428 EXPECT_EQ(0U, flushed_events.size()); |
450 ASSERT_EQ(2, tep.decision_overrides_size()); | 429 ASSERT_EQ(2, tep.decision_overrides_size()); |
451 ASSERT_EQ(1, tep.decision_overrides(0)); | 430 ASSERT_EQ(1, tep.decision_overrides(0)); |
452 ASSERT_EQ(2, tep.decision_overrides(1)); | 431 ASSERT_EQ(2, tep.decision_overrides(1)); |
453 ASSERT_EQ(0, tep.event_type()); | 432 ASSERT_EQ(0, tep.event_type()); |
454 } | 433 } |
OLD | NEW |