Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(478)

Side by Side Diff: chrome/browser/translate/translate_manager_unittest.cc

Issue 3304015: Use PrefChangeRegistrar everywhere (Closed)
Patch Set: final version for commit Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "chrome/browser/renderer_host/test/test_render_view_host.h" 5 #include "chrome/browser/renderer_host/test/test_render_view_host.h"
6 6
7 #include "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
8 #include "chrome/app/chrome_dll_resource.h" 8 #include "chrome/app/chrome_dll_resource.h"
9 #include "chrome/browser/prefs/pref_service.h" 9 #include "chrome/browser/prefs/pref_service.h"
10 #include "chrome/browser/prefs/pref_change_registrar.h"
10 #include "chrome/browser/renderer_host/mock_render_process_host.h" 11 #include "chrome/browser/renderer_host/mock_render_process_host.h"
11 #include "chrome/browser/tab_contents/navigation_controller.h" 12 #include "chrome/browser/tab_contents/navigation_controller.h"
12 #include "chrome/browser/tab_contents/render_view_context_menu.h" 13 #include "chrome/browser/tab_contents/render_view_context_menu.h"
13 #include "chrome/browser/tab_contents/test_tab_contents.h" 14 #include "chrome/browser/tab_contents/test_tab_contents.h"
14 #include "chrome/browser/translate/translate_infobar_delegate.h" 15 #include "chrome/browser/translate/translate_infobar_delegate.h"
15 #include "chrome/browser/translate/translate_manager.h" 16 #include "chrome/browser/translate/translate_manager.h"
16 #include "chrome/browser/translate/translate_prefs.h" 17 #include "chrome/browser/translate/translate_prefs.h"
17 #include "chrome/common/ipc_test_sink.h" 18 #include "chrome/common/ipc_test_sink.h"
18 #include "chrome/common/notification_details.h" 19 #include "chrome/common/notification_details.h"
19 #include "chrome/common/notification_observer_mock.h" 20 #include "chrome/common/notification_observer_mock.h"
(...skipping 824 matching lines...) Expand 10 before | Expand all | Expand 10 after
844 TEST_F(TranslateManagerTest, NeverTranslateLanguagePref) { 845 TEST_F(TranslateManagerTest, NeverTranslateLanguagePref) {
845 // Simulate navigating to a page and getting its language. 846 // Simulate navigating to a page and getting its language.
846 GURL url("http://www.google.fr"); 847 GURL url("http://www.google.fr");
847 SimulateNavigation(url, "Le Google", "fr", true); 848 SimulateNavigation(url, "Le Google", "fr", true);
848 849
849 // An infobar should be shown. 850 // An infobar should be shown.
850 EXPECT_TRUE(GetTranslateInfoBar() != NULL); 851 EXPECT_TRUE(GetTranslateInfoBar() != NULL);
851 852
852 // Select never translate this language. 853 // Select never translate this language.
853 PrefService* prefs = contents()->profile()->GetPrefs(); 854 PrefService* prefs = contents()->profile()->GetPrefs();
854 prefs->AddPrefObserver(TranslatePrefs::kPrefTranslateLanguageBlacklist, 855 PrefChangeRegistrar registrar;
855 &pref_observer_); 856 registrar.Init(prefs);
857 registrar.Add(TranslatePrefs::kPrefTranslateLanguageBlacklist,
858 &pref_observer_);
856 TranslatePrefs translate_prefs(prefs); 859 TranslatePrefs translate_prefs(prefs);
857 EXPECT_FALSE(translate_prefs.IsLanguageBlacklisted("fr")); 860 EXPECT_FALSE(translate_prefs.IsLanguageBlacklisted("fr"));
858 EXPECT_TRUE(translate_prefs.CanTranslate(prefs, "fr", url)); 861 EXPECT_TRUE(translate_prefs.CanTranslate(prefs, "fr", url));
859 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateLanguageBlacklist); 862 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateLanguageBlacklist);
860 translate_prefs.BlacklistLanguage("fr"); 863 translate_prefs.BlacklistLanguage("fr");
861 EXPECT_TRUE(translate_prefs.IsLanguageBlacklisted("fr")); 864 EXPECT_TRUE(translate_prefs.IsLanguageBlacklisted("fr"));
862 EXPECT_FALSE(translate_prefs.CanTranslate(prefs, "fr", url)); 865 EXPECT_FALSE(translate_prefs.CanTranslate(prefs, "fr", url));
863 866
864 // Close the infobar. 867 // Close the infobar.
865 EXPECT_TRUE(CloseTranslateInfoBar()); 868 EXPECT_TRUE(CloseTranslateInfoBar());
866 869
867 // Navigate to a new page also in French. 870 // Navigate to a new page also in French.
868 SimulateNavigation(GURL("http://wwww.youtube.fr"), "Le YouTube", "fr", true); 871 SimulateNavigation(GURL("http://wwww.youtube.fr"), "Le YouTube", "fr", true);
869 872
870 // There should not be a translate infobar. 873 // There should not be a translate infobar.
871 EXPECT_TRUE(GetTranslateInfoBar() == NULL); 874 EXPECT_TRUE(GetTranslateInfoBar() == NULL);
872 875
873 // Remove the language from the blacklist. 876 // Remove the language from the blacklist.
874 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateLanguageBlacklist); 877 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateLanguageBlacklist);
875 translate_prefs.RemoveLanguageFromBlacklist("fr"); 878 translate_prefs.RemoveLanguageFromBlacklist("fr");
876 EXPECT_FALSE(translate_prefs.IsLanguageBlacklisted("fr")); 879 EXPECT_FALSE(translate_prefs.IsLanguageBlacklisted("fr"));
877 EXPECT_TRUE(translate_prefs.CanTranslate(prefs, "fr", url)); 880 EXPECT_TRUE(translate_prefs.CanTranslate(prefs, "fr", url));
878 881
879 // Navigate to a page in French. 882 // Navigate to a page in French.
880 SimulateNavigation(url, "Le Google", "fr", true); 883 SimulateNavigation(url, "Le Google", "fr", true);
881 884
882 // There should be a translate infobar. 885 // There should be a translate infobar.
883 EXPECT_TRUE(GetTranslateInfoBar() != NULL); 886 EXPECT_TRUE(GetTranslateInfoBar() != NULL);
884 prefs->RemovePrefObserver(TranslatePrefs::kPrefTranslateLanguageBlacklist,
885 &pref_observer_);
886 } 887 }
887 888
888 // Tests the "Never translate this site" pref. 889 // Tests the "Never translate this site" pref.
889 TEST_F(TranslateManagerTest, NeverTranslateSitePref) { 890 TEST_F(TranslateManagerTest, NeverTranslateSitePref) {
890 // Simulate navigating to a page and getting its language. 891 // Simulate navigating to a page and getting its language.
891 GURL url("http://www.google.fr"); 892 GURL url("http://www.google.fr");
892 std::string host(url.host()); 893 std::string host(url.host());
893 SimulateNavigation(url, "Le Google", "fr", true); 894 SimulateNavigation(url, "Le Google", "fr", true);
894 895
895 // An infobar should be shown. 896 // An infobar should be shown.
896 EXPECT_TRUE(GetTranslateInfoBar() != NULL); 897 EXPECT_TRUE(GetTranslateInfoBar() != NULL);
897 898
898 // Select never translate this site. 899 // Select never translate this site.
899 PrefService* prefs = contents()->profile()->GetPrefs(); 900 PrefService* prefs = contents()->profile()->GetPrefs();
900 prefs->AddPrefObserver(TranslatePrefs::kPrefTranslateSiteBlacklist, 901 PrefChangeRegistrar registrar;
901 &pref_observer_); 902 registrar.Init(prefs);
903 registrar.Add(TranslatePrefs::kPrefTranslateSiteBlacklist,
904 &pref_observer_);
902 TranslatePrefs translate_prefs(prefs); 905 TranslatePrefs translate_prefs(prefs);
903 EXPECT_FALSE(translate_prefs.IsSiteBlacklisted(host)); 906 EXPECT_FALSE(translate_prefs.IsSiteBlacklisted(host));
904 EXPECT_TRUE(translate_prefs.CanTranslate(prefs, "fr", url)); 907 EXPECT_TRUE(translate_prefs.CanTranslate(prefs, "fr", url));
905 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateSiteBlacklist); 908 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateSiteBlacklist);
906 translate_prefs.BlacklistSite(host); 909 translate_prefs.BlacklistSite(host);
907 EXPECT_TRUE(translate_prefs.IsSiteBlacklisted(host)); 910 EXPECT_TRUE(translate_prefs.IsSiteBlacklisted(host));
908 EXPECT_FALSE(translate_prefs.CanTranslate(prefs, "fr", url)); 911 EXPECT_FALSE(translate_prefs.CanTranslate(prefs, "fr", url));
909 912
910 // Close the infobar. 913 // Close the infobar.
911 EXPECT_TRUE(CloseTranslateInfoBar()); 914 EXPECT_TRUE(CloseTranslateInfoBar());
912 915
913 // Navigate to a new page also on the same site. 916 // Navigate to a new page also on the same site.
914 SimulateNavigation(GURL("http://www.google.fr/hello"), "Bonjour", "fr", true); 917 SimulateNavigation(GURL("http://www.google.fr/hello"), "Bonjour", "fr", true);
915 918
916 // There should not be a translate infobar. 919 // There should not be a translate infobar.
917 EXPECT_TRUE(GetTranslateInfoBar() == NULL); 920 EXPECT_TRUE(GetTranslateInfoBar() == NULL);
918 921
919 // Remove the site from the blacklist. 922 // Remove the site from the blacklist.
920 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateSiteBlacklist); 923 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateSiteBlacklist);
921 translate_prefs.RemoveSiteFromBlacklist(host); 924 translate_prefs.RemoveSiteFromBlacklist(host);
922 EXPECT_FALSE(translate_prefs.IsSiteBlacklisted(host)); 925 EXPECT_FALSE(translate_prefs.IsSiteBlacklisted(host));
923 EXPECT_TRUE(translate_prefs.CanTranslate(prefs, "fr", url)); 926 EXPECT_TRUE(translate_prefs.CanTranslate(prefs, "fr", url));
924 927
925 // Navigate to a page in French. 928 // Navigate to a page in French.
926 SimulateNavigation(url, "Le Google", "fr", true); 929 SimulateNavigation(url, "Le Google", "fr", true);
927 930
928 // There should be a translate infobar. 931 // There should be a translate infobar.
929 EXPECT_TRUE(GetTranslateInfoBar() != NULL); 932 EXPECT_TRUE(GetTranslateInfoBar() != NULL);
930 prefs->RemovePrefObserver(TranslatePrefs::kPrefTranslateSiteBlacklist,
931 &pref_observer_);
932 } 933 }
933 934
934 // Tests the "Always translate this language" pref. 935 // Tests the "Always translate this language" pref.
935 TEST_F(TranslateManagerTest, AlwaysTranslateLanguagePref) { 936 TEST_F(TranslateManagerTest, AlwaysTranslateLanguagePref) {
936 // Select always translate French to English. 937 // Select always translate French to English.
937 PrefService* prefs = contents()->profile()->GetPrefs(); 938 PrefService* prefs = contents()->profile()->GetPrefs();
938 prefs->AddPrefObserver(TranslatePrefs::kPrefTranslateWhitelists, 939 PrefChangeRegistrar registrar;
939 &pref_observer_); 940 registrar.Init(prefs);
941 registrar.Add(TranslatePrefs::kPrefTranslateWhitelists,
942 &pref_observer_);
940 TranslatePrefs translate_prefs(prefs); 943 TranslatePrefs translate_prefs(prefs);
941 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateWhitelists); 944 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateWhitelists);
942 translate_prefs.WhitelistLanguagePair("fr", "en"); 945 translate_prefs.WhitelistLanguagePair("fr", "en");
943 946
944 // Load a page in French. 947 // Load a page in French.
945 SimulateNavigation(GURL("http://www.google.fr"), "Le Google", "fr", true); 948 SimulateNavigation(GURL("http://www.google.fr"), "Le Google", "fr", true);
946 949
947 // It should have triggered an automatic translation to English. 950 // It should have triggered an automatic translation to English.
948 951
949 // The translating infobar should be showing. 952 // The translating infobar should be showing.
(...skipping 28 matching lines...) Expand all
978 981
979 // Now revert the always translate pref and make sure we go back to expected 982 // Now revert the always translate pref and make sure we go back to expected
980 // behavior, which is show a "before translate" infobar. 983 // behavior, which is show a "before translate" infobar.
981 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateWhitelists); 984 SetPrefObserverExpectation(TranslatePrefs::kPrefTranslateWhitelists);
982 translate_prefs.RemoveLanguagePairFromWhitelist("fr", "en"); 985 translate_prefs.RemoveLanguagePairFromWhitelist("fr", "en");
983 SimulateNavigation(GURL("http://www.google.fr"), "Le Google", "fr", true); 986 SimulateNavigation(GURL("http://www.google.fr"), "Le Google", "fr", true);
984 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); 987 EXPECT_FALSE(GetTranslateMessage(&page_id, &original_lang, &target_lang));
985 infobar = GetTranslateInfoBar(); 988 infobar = GetTranslateInfoBar();
986 ASSERT_TRUE(infobar != NULL); 989 ASSERT_TRUE(infobar != NULL);
987 EXPECT_EQ(TranslateInfoBarDelegate::BEFORE_TRANSLATE, infobar->type()); 990 EXPECT_EQ(TranslateInfoBarDelegate::BEFORE_TRANSLATE, infobar->type());
988 prefs->RemovePrefObserver(TranslatePrefs::kPrefTranslateWhitelists,
989 &pref_observer_);
990 } 991 }
991 992
992 // Context menu. 993 // Context menu.
993 TEST_F(TranslateManagerTest, ContextMenu) { 994 TEST_F(TranslateManagerTest, ContextMenu) {
994 // Blacklist www.google.fr and French for translation. 995 // Blacklist www.google.fr and French for translation.
995 GURL url("http://www.google.fr"); 996 GURL url("http://www.google.fr");
996 TranslatePrefs translate_prefs(contents()->profile()->GetPrefs()); 997 TranslatePrefs translate_prefs(contents()->profile()->GetPrefs());
997 translate_prefs.BlacklistLanguage("fr"); 998 translate_prefs.BlacklistLanguage("fr");
998 translate_prefs.BlacklistSite(url.host()); 999 translate_prefs.BlacklistSite(url.host());
999 EXPECT_TRUE(translate_prefs.IsLanguageBlacklisted("fr")); 1000 EXPECT_TRUE(translate_prefs.IsLanguageBlacklisted("fr"));
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
1223 NULL); 1224 NULL);
1224 // Now simulate the URL fetch. 1225 // Now simulate the URL fetch.
1225 SimulateURLFetch(true); 1226 SimulateURLFetch(true);
1226 // Now the message should have been sent. 1227 // Now the message should have been sent.
1227 int page_id = 0; 1228 int page_id = 0;
1228 std::string original_lang, target_lang; 1229 std::string original_lang, target_lang;
1229 EXPECT_TRUE(GetTranslateMessage(&page_id, &original_lang, &target_lang)); 1230 EXPECT_TRUE(GetTranslateMessage(&page_id, &original_lang, &target_lang));
1230 EXPECT_EQ("es", original_lang); 1231 EXPECT_EQ("es", original_lang);
1231 EXPECT_EQ("en", target_lang); 1232 EXPECT_EQ("en", target_lang);
1232 } 1233 }
OLDNEW
« no previous file with comments | « chrome/browser/translate/translate_manager.cc ('k') | chrome/browser/views/options/general_page_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698