| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "components/translate/common/translate_util.h" |
| |
| #include "base/command_line.h" |
| #include "components/translate/common/translate_switches.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| #include "url/gurl.h" |
| |
| typedef testing::Test TranslateUtilTest; |
| |
| // Tests that synonym language code is converted to one used in supporting list. |
| TEST_F(TranslateUtilTest, ToTranslateLanguageSynonym) { |
| std::string language; |
| |
| language = std::string("nb"); |
| translate::ToTranslateLanguageSynonym(&language); |
| EXPECT_EQ("no", language); |
| |
| language = std::string("he"); |
| translate::ToTranslateLanguageSynonym(&language); |
| EXPECT_EQ("iw", language); |
| |
| language = std::string("jv"); |
| translate::ToTranslateLanguageSynonym(&language); |
| EXPECT_EQ("jw", language); |
| |
| language = std::string("fil"); |
| translate::ToTranslateLanguageSynonym(&language); |
| EXPECT_EQ("tl", language); |
| |
| // Preserve a sub code if the language has a synonym. |
| language = std::string("he-IL"); |
| translate::ToTranslateLanguageSynonym(&language); |
| EXPECT_EQ("iw-IL", language); |
| |
| // Don't preserve a sub code if the language has just a similitude. |
| language = std::string("nb-NO"); |
| translate::ToTranslateLanguageSynonym(&language); |
| EXPECT_EQ("nb-NO", language); |
| |
| // Preserve the argument if it doesn't have its synonym. |
| language = std::string("en"); |
| translate::ToTranslateLanguageSynonym(&language); |
| EXPECT_EQ("en", language); |
| } |
| |
| // Tests that synonym language code is converted to one used in Chrome internal. |
| TEST_F(TranslateUtilTest, ToChromeLanguageSynonym) { |
| std::string language; |
| |
| language = std::string("no"); |
| translate::ToChromeLanguageSynonym(&language); |
| EXPECT_EQ("nb", language); |
| |
| language = std::string("iw"); |
| translate::ToChromeLanguageSynonym(&language); |
| EXPECT_EQ("he", language); |
| |
| language = std::string("jw"); |
| translate::ToChromeLanguageSynonym(&language); |
| EXPECT_EQ("jv", language); |
| |
| language = std::string("tl"); |
| translate::ToChromeLanguageSynonym(&language); |
| EXPECT_EQ("fil", language); |
| |
| // Preserve a sub code if the language has a synonym. |
| language = std::string("iw-IL"); |
| translate::ToChromeLanguageSynonym(&language); |
| EXPECT_EQ("he-IL", language); |
| |
| // Don't preserve a sub code if the language has just a similitude. |
| language = std::string("no-NO"); |
| translate::ToChromeLanguageSynonym(&language); |
| EXPECT_EQ("no-NO", language); |
| |
| // Preserve the argument if it doesn't have its synonym. |
| language = std::string("en"); |
| translate::ToChromeLanguageSynonym(&language); |
| EXPECT_EQ("en", language); |
| } |
| |
| TEST_F(TranslateUtilTest, SecurityOrigin) { |
| GURL origin = translate::GetTranslateSecurityOrigin(); |
| EXPECT_EQ(std::string(translate::kSecurityOrigin), origin.spec()); |
| |
| const std::string running_origin("http://www.tamurayukari.com/"); |
| CommandLine* command_line = CommandLine::ForCurrentProcess(); |
| command_line->AppendSwitchASCII(translate::switches::kTranslateSecurityOrigin, |
| running_origin); |
| GURL modified_origin = translate::GetTranslateSecurityOrigin(); |
| EXPECT_EQ(running_origin, modified_origin.spec()); |
| } |