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()
: on_is_page_translated_changed_called_(false),
on_translate_enabled_changed_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,
const std::string& translate_script,
......@@ -50,7 +51,7 @@ const std::string& MockTranslateDriver::GetContentsMimeType() {
}
const GURL& MockTranslateDriver::GetLastCommittedURL() {
return GURL::EmptyGURL();
return last_committed_url_;
}
const GURL& MockTranslateDriver::GetVisibleURL() {
......@@ -61,6 +62,10 @@ bool MockTranslateDriver::HasCurrentPage() {
return true;
}
void MockTranslateDriver::SetLastCommittedURL(const GURL& url) {
last_committed_url_ = url;
}
} // namespace testing
} // namespace translate
......
......@@ -60,11 +60,14 @@ class MockTranslateDriver : public TranslateDriver {
bool TranslatePage_is_called() const { return translate_page_is_called_; }
void SetLastCommittedURL(const GURL& url);
private:
bool on_is_page_translated_changed_called_;
bool on_translate_enabled_changed_called_;
bool translate_page_is_called_;
LanguageState language_state_;
GURL last_committed_url_;
DISALLOW_COPY_AND_ASSIGN(MockTranslateDriver);
};
......
......@@ -11,6 +11,7 @@
#include <string>
#include <vector>
#include "base/gtest_prod_util.h"
#include "base/logging.h"
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
......@@ -122,6 +123,8 @@ class TranslateUIDelegate {
bool ShouldAlwaysTranslateBeCheckedByDefault();
private:
FRIEND_TEST_ALL_PREFIXES(TranslateUIDelegateTest, GetPageHost);
// Gets the host of the page being translated, or an empty string if no URL is
// associated with the current page.
std::string GetPageHost();
......
......@@ -9,6 +9,7 @@
#include "base/macros.h"
#include "base/memory/ptr_util.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "build/build_config.h"
#include "components/infobars/core/infobar.h"
#include "components/metrics/proto/translate_event.pb.h"
......@@ -26,6 +27,7 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
using testing::_;
using testing::Return;
using testing::Test;
using translate::testing::MockTranslateClient;
......@@ -70,6 +72,11 @@ class TranslateUIDelegateTest : public ::testing::Test {
};
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());
for (int i = 0; i < 10; i++) {
prefs->IncrementTranslationAcceptedCount("ar");
......@@ -89,6 +96,11 @@ TEST_F(TranslateUIDelegateTest, CheckDeclinedFalse) {
}
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());
for (int i = 0; i < 10; i++) {
prefs->IncrementTranslationAcceptedCount("ar");
......@@ -106,6 +118,13 @@ TEST_F(TranslateUIDelegateTest, CheckDeclinedTrue) {
}
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());
manager_->GetLanguageState().SetTranslateEnabled(true);
EXPECT_TRUE(manager_->GetLanguageState().translate_enabled());
......@@ -162,8 +181,35 @@ TEST_F(TranslateUIDelegateTest, ShouldAlwaysTranslateBeCheckedByDefault2) {
EXPECT_FALSE(delegate_->ShouldAlwaysTranslateBeCheckedByDefault());
}
// TODO(ftang) Currently this file only test TranslationDeclined(), we
// need to add the test for other functions soon to increase the test
// coverage.
TEST_F(TranslateUIDelegateTest, LanguageCodes) {
// Test language codes.
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
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