• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "components/translate/common/translate_util.h"
6 
7 #include "base/command_line.h"
8 #include "components/translate/common/translate_switches.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "url/gurl.h"
11 
12 typedef testing::Test TranslateUtilTest;
13 
14 // Tests that synonym language code is converted to one used in supporting list.
TEST_F(TranslateUtilTest,ToTranslateLanguageSynonym)15 TEST_F(TranslateUtilTest, ToTranslateLanguageSynonym) {
16   std::string language;
17 
18   language = std::string("nb");
19   translate::ToTranslateLanguageSynonym(&language);
20   EXPECT_EQ("no", language);
21 
22   language = std::string("he");
23   translate::ToTranslateLanguageSynonym(&language);
24   EXPECT_EQ("iw", language);
25 
26   language = std::string("jv");
27   translate::ToTranslateLanguageSynonym(&language);
28   EXPECT_EQ("jw", language);
29 
30   language = std::string("fil");
31   translate::ToTranslateLanguageSynonym(&language);
32   EXPECT_EQ("tl", language);
33 
34   // Preserve a sub code if the language has a synonym.
35   language = std::string("he-IL");
36   translate::ToTranslateLanguageSynonym(&language);
37   EXPECT_EQ("iw-IL", language);
38 
39   // Don't preserve a sub code if the language has just a similitude.
40   language = std::string("nb-NO");
41   translate::ToTranslateLanguageSynonym(&language);
42   EXPECT_EQ("nb-NO", language);
43 
44   // Preserve the argument if it doesn't have its synonym.
45   language = std::string("en");
46   translate::ToTranslateLanguageSynonym(&language);
47   EXPECT_EQ("en", language);
48 }
49 
50 // Tests that synonym language code is converted to one used in Chrome internal.
TEST_F(TranslateUtilTest,ToChromeLanguageSynonym)51 TEST_F(TranslateUtilTest, ToChromeLanguageSynonym) {
52   std::string language;
53 
54   language = std::string("no");
55   translate::ToChromeLanguageSynonym(&language);
56   EXPECT_EQ("nb", language);
57 
58   language = std::string("iw");
59   translate::ToChromeLanguageSynonym(&language);
60   EXPECT_EQ("he", language);
61 
62   language = std::string("jw");
63   translate::ToChromeLanguageSynonym(&language);
64   EXPECT_EQ("jv", language);
65 
66   language = std::string("tl");
67   translate::ToChromeLanguageSynonym(&language);
68   EXPECT_EQ("fil", language);
69 
70   // Preserve a sub code if the language has a synonym.
71   language = std::string("iw-IL");
72   translate::ToChromeLanguageSynonym(&language);
73   EXPECT_EQ("he-IL", language);
74 
75   // Don't preserve a sub code if the language has just a similitude.
76   language = std::string("no-NO");
77   translate::ToChromeLanguageSynonym(&language);
78   EXPECT_EQ("no-NO", language);
79 
80   // Preserve the argument if it doesn't have its synonym.
81   language = std::string("en");
82   translate::ToChromeLanguageSynonym(&language);
83   EXPECT_EQ("en", language);
84 }
85 
TEST_F(TranslateUtilTest,SecurityOrigin)86 TEST_F(TranslateUtilTest, SecurityOrigin) {
87   GURL origin = translate::GetTranslateSecurityOrigin();
88   EXPECT_EQ(std::string(translate::kSecurityOrigin), origin.spec());
89 
90   const std::string running_origin("http://www.tamurayukari.com/");
91   CommandLine* command_line = CommandLine::ForCurrentProcess();
92   command_line->AppendSwitchASCII(translate::switches::kTranslateSecurityOrigin,
93                                   running_origin);
94   GURL modified_origin = translate::GetTranslateSecurityOrigin();
95   EXPECT_EQ(running_origin, modified_origin.spec());
96 }
97