Commit 04f14d7d authored by Jon Napper's avatar Jon Napper Committed by Commit Bot

Added missing unit tests for translate_ui_delegate

Added missing unit tests for translate_ui_delegate. Also added
missing EXPECT_CALL()s for RecordTranslationEvents.

Bug: 744223
Change-Id: Id78a230a8faa59295a58e13771401e7c989b4993
Reviewed-on: https://chromium-review.googlesource.com/572507Reviewed-by: default avatarDavid Vallet <dvallet@chromium.org>
Commit-Queue: Jon Napper <napper@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487397}
parent 66570496
...@@ -14,7 +14,8 @@ MockTranslateDriver::MockTranslateDriver() ...@@ -14,7 +14,8 @@ MockTranslateDriver::MockTranslateDriver()
: on_is_page_translated_changed_called_(false), : on_is_page_translated_changed_called_(false),
on_translate_enabled_changed_called_(false), on_translate_enabled_changed_called_(false),
translate_page_is_called_(false), translate_page_is_called_(false),
language_state_(this) {} language_state_(this),
last_committed_url_(GURL::EmptyGURL()) {}
void MockTranslateDriver::TranslatePage(int page_seq_no, void MockTranslateDriver::TranslatePage(int page_seq_no,
const std::string& translate_script, const std::string& translate_script,
...@@ -50,7 +51,7 @@ const std::string& MockTranslateDriver::GetContentsMimeType() { ...@@ -50,7 +51,7 @@ const std::string& MockTranslateDriver::GetContentsMimeType() {
} }
const GURL& MockTranslateDriver::GetLastCommittedURL() { const GURL& MockTranslateDriver::GetLastCommittedURL() {
return GURL::EmptyGURL(); return last_committed_url_;
} }
const GURL& MockTranslateDriver::GetVisibleURL() { const GURL& MockTranslateDriver::GetVisibleURL() {
...@@ -61,6 +62,10 @@ bool MockTranslateDriver::HasCurrentPage() { ...@@ -61,6 +62,10 @@ bool MockTranslateDriver::HasCurrentPage() {
return true; return true;
} }
void MockTranslateDriver::SetLastCommittedURL(const GURL& url) {
last_committed_url_ = url;
}
} // namespace testing } // namespace testing
} // namespace translate } // namespace translate
......
...@@ -60,11 +60,14 @@ class MockTranslateDriver : public TranslateDriver { ...@@ -60,11 +60,14 @@ class MockTranslateDriver : public TranslateDriver {
bool TranslatePage_is_called() const { return translate_page_is_called_; } bool TranslatePage_is_called() const { return translate_page_is_called_; }
void SetLastCommittedURL(const GURL& url);
private: private:
bool on_is_page_translated_changed_called_; bool on_is_page_translated_changed_called_;
bool on_translate_enabled_changed_called_; bool on_translate_enabled_changed_called_;
bool translate_page_is_called_; bool translate_page_is_called_;
LanguageState language_state_; LanguageState language_state_;
GURL last_committed_url_;
DISALLOW_COPY_AND_ASSIGN(MockTranslateDriver); DISALLOW_COPY_AND_ASSIGN(MockTranslateDriver);
}; };
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include <string> #include <string>
#include <vector> #include <vector>
#include "base/gtest_prod_util.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
...@@ -122,6 +123,8 @@ class TranslateUIDelegate { ...@@ -122,6 +123,8 @@ class TranslateUIDelegate {
bool ShouldAlwaysTranslateBeCheckedByDefault(); bool ShouldAlwaysTranslateBeCheckedByDefault();
private: private:
FRIEND_TEST_ALL_PREFIXES(TranslateUIDelegateTest, GetPageHost);
// Gets the host of the page being translated, or an empty string if no URL is // Gets the host of the page being translated, or an empty string if no URL is
// associated with the current page. // associated with the current page.
std::string GetPageHost(); std::string GetPageHost();
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/ptr_util.h" #include "base/memory/ptr_util.h"
#include "base/strings/stringprintf.h" #include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "components/infobars/core/infobar.h" #include "components/infobars/core/infobar.h"
#include "components/metrics/proto/translate_event.pb.h" #include "components/metrics/proto/translate_event.pb.h"
...@@ -26,6 +27,7 @@ ...@@ -26,6 +27,7 @@
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h" #include "url/gurl.h"
using testing::_;
using testing::Return; using testing::Return;
using testing::Test; using testing::Test;
using translate::testing::MockTranslateClient; using translate::testing::MockTranslateClient;
...@@ -70,6 +72,11 @@ class TranslateUIDelegateTest : public ::testing::Test { ...@@ -70,6 +72,11 @@ class TranslateUIDelegateTest : public ::testing::Test {
}; };
TEST_F(TranslateUIDelegateTest, CheckDeclinedFalse) { TEST_F(TranslateUIDelegateTest, CheckDeclinedFalse) {
EXPECT_CALL(*ranker_, RecordTranslateEvent(
metrics::TranslateEventProto::USER_IGNORE, _, _))
.Times(1);
EXPECT_CALL(*client_, RecordTranslateEvent(_)).Times(1);
std::unique_ptr<TranslatePrefs> prefs(client_->GetTranslatePrefs()); std::unique_ptr<TranslatePrefs> prefs(client_->GetTranslatePrefs());
for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++) {
prefs->IncrementTranslationAcceptedCount("ar"); prefs->IncrementTranslationAcceptedCount("ar");
...@@ -89,6 +96,11 @@ TEST_F(TranslateUIDelegateTest, CheckDeclinedFalse) { ...@@ -89,6 +96,11 @@ TEST_F(TranslateUIDelegateTest, CheckDeclinedFalse) {
} }
TEST_F(TranslateUIDelegateTest, CheckDeclinedTrue) { TEST_F(TranslateUIDelegateTest, CheckDeclinedTrue) {
EXPECT_CALL(*ranker_, RecordTranslateEvent(
metrics::TranslateEventProto::USER_DECLINE, _, _))
.Times(1);
EXPECT_CALL(*client_, RecordTranslateEvent(_)).Times(1);
std::unique_ptr<TranslatePrefs> prefs(client_->GetTranslatePrefs()); std::unique_ptr<TranslatePrefs> prefs(client_->GetTranslatePrefs());
for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++) {
prefs->IncrementTranslationAcceptedCount("ar"); prefs->IncrementTranslationAcceptedCount("ar");
...@@ -106,6 +118,13 @@ TEST_F(TranslateUIDelegateTest, CheckDeclinedTrue) { ...@@ -106,6 +118,13 @@ TEST_F(TranslateUIDelegateTest, CheckDeclinedTrue) {
} }
TEST_F(TranslateUIDelegateTest, SetLanguageBlocked) { TEST_F(TranslateUIDelegateTest, SetLanguageBlocked) {
EXPECT_CALL(
*ranker_,
RecordTranslateEvent(
metrics::TranslateEventProto::USER_NEVER_TRANSLATE_LANGUAGE, _, _))
.Times(1);
EXPECT_CALL(*client_, RecordTranslateEvent(_)).Times(1);
std::unique_ptr<TranslatePrefs> prefs(client_->GetTranslatePrefs()); std::unique_ptr<TranslatePrefs> prefs(client_->GetTranslatePrefs());
manager_->GetLanguageState().SetTranslateEnabled(true); manager_->GetLanguageState().SetTranslateEnabled(true);
EXPECT_TRUE(manager_->GetLanguageState().translate_enabled()); EXPECT_TRUE(manager_->GetLanguageState().translate_enabled());
...@@ -162,8 +181,35 @@ TEST_F(TranslateUIDelegateTest, ShouldAlwaysTranslateBeCheckedByDefault2) { ...@@ -162,8 +181,35 @@ TEST_F(TranslateUIDelegateTest, ShouldAlwaysTranslateBeCheckedByDefault2) {
EXPECT_FALSE(delegate_->ShouldAlwaysTranslateBeCheckedByDefault()); EXPECT_FALSE(delegate_->ShouldAlwaysTranslateBeCheckedByDefault());
} }
// TODO(ftang) Currently this file only test TranslationDeclined(), we TEST_F(TranslateUIDelegateTest, LanguageCodes) {
// need to add the test for other functions soon to increase the test // Test language codes.
// coverage. EXPECT_EQ("ar", delegate_->GetOriginalLanguageCode());
EXPECT_EQ("fr", delegate_->GetTargetLanguageCode());
// Test language indicies.
const size_t ar_index = delegate_->GetOriginalLanguageIndex();
EXPECT_EQ("ar", delegate_->GetLanguageCodeAt(ar_index));
const size_t fr_index = delegate_->GetTargetLanguageIndex();
EXPECT_EQ("fr", delegate_->GetLanguageCodeAt(fr_index));
// Test updating original / target codes.
delegate_->UpdateOriginalLanguage("es");
EXPECT_EQ("es", delegate_->GetOriginalLanguageCode());
delegate_->UpdateTargetLanguage("de");
EXPECT_EQ("de", delegate_->GetTargetLanguageCode());
// Test updating original / target indicies. Note that this also returns
// the delegate to the starting state.
delegate_->UpdateOriginalLanguageIndex(ar_index);
EXPECT_EQ("ar", delegate_->GetOriginalLanguageCode());
delegate_->UpdateTargetLanguageIndex(fr_index);
EXPECT_EQ("fr", delegate_->GetTargetLanguageCode());
}
TEST_F(TranslateUIDelegateTest, GetPageHost) {
const GURL url("https://www.example.com/hello/world?fg=1");
driver_.SetLastCommittedURL(url);
EXPECT_EQ("www.example.com", delegate_->GetPageHost());
}
} // namespace translate } // namespace translate
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment