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

Side by Side Diff: base/values_unittest.cc

Issue 191983002: Clarify Value::Get*()'s interface to reflect the current implementation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « base/values.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <limits> 5 #include <limits>
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/strings/string16.h" 8 #include "base/strings/string16.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 791 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 EXPECT_TRUE(value2.Equals(&it.value())); 802 EXPECT_TRUE(value2.Equals(&it.value()));
803 seen2 = true; 803 seen2 = true;
804 } else { 804 } else {
805 ADD_FAILURE(); 805 ADD_FAILURE();
806 } 806 }
807 } 807 }
808 EXPECT_TRUE(seen1); 808 EXPECT_TRUE(seen1);
809 EXPECT_TRUE(seen2); 809 EXPECT_TRUE(seen2);
810 } 810 }
811 811
812 // DictionaryValue/ListValue's Get*() methods should accept NULL as an out-value
813 // and still return true/false based on success.
814 TEST(ValuesTest, GetWithNullOutValue) {
815 DictionaryValue main_dict;
816 ListValue main_list;
817
818 FundamentalValue bool_value(false);
819 FundamentalValue int_value(1234);
820 FundamentalValue double_value(12.34567);
821 StringValue string_value("foo");
822 BinaryValue binary_value;
823 DictionaryValue dict_value;
824 ListValue list_value;
825
826 main_dict.Set("bool", bool_value.DeepCopy());
827 main_dict.Set("int", int_value.DeepCopy());
828 main_dict.Set("double", double_value.DeepCopy());
829 main_dict.Set("string", string_value.DeepCopy());
830 main_dict.Set("binary", binary_value.DeepCopy());
831 main_dict.Set("dict", dict_value.DeepCopy());
832 main_dict.Set("list", list_value.DeepCopy());
833
834 main_list.Append(bool_value.DeepCopy());
835 main_list.Append(int_value.DeepCopy());
836 main_list.Append(double_value.DeepCopy());
837 main_list.Append(string_value.DeepCopy());
838 main_list.Append(binary_value.DeepCopy());
839 main_list.Append(dict_value.DeepCopy());
840 main_list.Append(list_value.DeepCopy());
841
842 EXPECT_TRUE(main_dict.Get("bool", NULL));
843 EXPECT_TRUE(main_dict.Get("int", NULL));
844 EXPECT_TRUE(main_dict.Get("double", NULL));
845 EXPECT_TRUE(main_dict.Get("string", NULL));
846 EXPECT_TRUE(main_dict.Get("binary", NULL));
847 EXPECT_TRUE(main_dict.Get("dict", NULL));
848 EXPECT_TRUE(main_dict.Get("list", NULL));
849 EXPECT_FALSE(main_dict.Get("DNE", NULL));
850
851 EXPECT_TRUE(main_dict.GetBoolean("bool", NULL));
852 EXPECT_FALSE(main_dict.GetBoolean("int", NULL));
853 EXPECT_FALSE(main_dict.GetBoolean("double", NULL));
854 EXPECT_FALSE(main_dict.GetBoolean("string", NULL));
855 EXPECT_FALSE(main_dict.GetBoolean("binary", NULL));
856 EXPECT_FALSE(main_dict.GetBoolean("dict", NULL));
857 EXPECT_FALSE(main_dict.GetBoolean("list", NULL));
858 EXPECT_FALSE(main_dict.GetBoolean("DNE", NULL));
859
860 EXPECT_FALSE(main_dict.GetInteger("bool", NULL));
861 EXPECT_TRUE(main_dict.GetInteger("int", NULL));
862 EXPECT_FALSE(main_dict.GetInteger("double", NULL));
863 EXPECT_FALSE(main_dict.GetInteger("string", NULL));
864 EXPECT_FALSE(main_dict.GetInteger("binary", NULL));
865 EXPECT_FALSE(main_dict.GetInteger("dict", NULL));
866 EXPECT_FALSE(main_dict.GetInteger("list", NULL));
867 EXPECT_FALSE(main_dict.GetInteger("DNE", NULL));
868
869 // Both int and double values can be obtained from GetDouble.
870 EXPECT_FALSE(main_dict.GetDouble("bool", NULL));
871 EXPECT_TRUE(main_dict.GetDouble("int", NULL));
872 EXPECT_TRUE(main_dict.GetDouble("double", NULL));
873 EXPECT_FALSE(main_dict.GetDouble("string", NULL));
874 EXPECT_FALSE(main_dict.GetDouble("binary", NULL));
875 EXPECT_FALSE(main_dict.GetDouble("dict", NULL));
876 EXPECT_FALSE(main_dict.GetDouble("list", NULL));
877 EXPECT_FALSE(main_dict.GetDouble("DNE", NULL));
878
879 EXPECT_FALSE(main_dict.GetString("bool", static_cast<std::string*>(NULL)));
880 EXPECT_FALSE(main_dict.GetString("int", static_cast<std::string*>(NULL)));
881 EXPECT_FALSE(main_dict.GetString("double", static_cast<std::string*>(NULL)));
882 EXPECT_TRUE(main_dict.GetString("string", static_cast<std::string*>(NULL)));
883 EXPECT_FALSE(main_dict.GetString("binary", static_cast<std::string*>(NULL)));
884 EXPECT_FALSE(main_dict.GetString("dict", static_cast<std::string*>(NULL)));
885 EXPECT_FALSE(main_dict.GetString("list", static_cast<std::string*>(NULL)));
886 EXPECT_FALSE(main_dict.GetString("DNE", static_cast<std::string*>(NULL)));
887
888 EXPECT_FALSE(main_dict.GetString("bool", static_cast<string16*>(NULL)));
889 EXPECT_FALSE(main_dict.GetString("int", static_cast<string16*>(NULL)));
890 EXPECT_FALSE(main_dict.GetString("double", static_cast<string16*>(NULL)));
891 EXPECT_TRUE(main_dict.GetString("string", static_cast<string16*>(NULL)));
892 EXPECT_FALSE(main_dict.GetString("binary", static_cast<string16*>(NULL)));
893 EXPECT_FALSE(main_dict.GetString("dict", static_cast<string16*>(NULL)));
894 EXPECT_FALSE(main_dict.GetString("list", static_cast<string16*>(NULL)));
895 EXPECT_FALSE(main_dict.GetString("DNE", static_cast<string16*>(NULL)));
896
897 EXPECT_FALSE(main_dict.GetBinary("bool", NULL));
898 EXPECT_FALSE(main_dict.GetBinary("int", NULL));
899 EXPECT_FALSE(main_dict.GetBinary("double", NULL));
900 EXPECT_FALSE(main_dict.GetBinary("string", NULL));
901 EXPECT_TRUE(main_dict.GetBinary("binary", NULL));
902 EXPECT_FALSE(main_dict.GetBinary("dict", NULL));
903 EXPECT_FALSE(main_dict.GetBinary("list", NULL));
904 EXPECT_FALSE(main_dict.GetBinary("DNE", NULL));
905
906 EXPECT_FALSE(main_dict.GetDictionary("bool", NULL));
907 EXPECT_FALSE(main_dict.GetDictionary("int", NULL));
908 EXPECT_FALSE(main_dict.GetDictionary("double", NULL));
909 EXPECT_FALSE(main_dict.GetDictionary("string", NULL));
910 EXPECT_FALSE(main_dict.GetDictionary("binary", NULL));
911 EXPECT_TRUE(main_dict.GetDictionary("dict", NULL));
912 EXPECT_FALSE(main_dict.GetDictionary("list", NULL));
913 EXPECT_FALSE(main_dict.GetDictionary("DNE", NULL));
914
915 EXPECT_FALSE(main_dict.GetList("bool", NULL));
916 EXPECT_FALSE(main_dict.GetList("int", NULL));
917 EXPECT_FALSE(main_dict.GetList("double", NULL));
918 EXPECT_FALSE(main_dict.GetList("string", NULL));
919 EXPECT_FALSE(main_dict.GetList("binary", NULL));
920 EXPECT_FALSE(main_dict.GetList("dict", NULL));
921 EXPECT_TRUE(main_dict.GetList("list", NULL));
922 EXPECT_FALSE(main_dict.GetList("DNE", NULL));
923
924 EXPECT_TRUE(main_dict.GetWithoutPathExpansion("bool", NULL));
925 EXPECT_TRUE(main_dict.GetWithoutPathExpansion("int", NULL));
926 EXPECT_TRUE(main_dict.GetWithoutPathExpansion("double", NULL));
927 EXPECT_TRUE(main_dict.GetWithoutPathExpansion("string", NULL));
928 EXPECT_TRUE(main_dict.GetWithoutPathExpansion("binary", NULL));
929 EXPECT_TRUE(main_dict.GetWithoutPathExpansion("dict", NULL));
930 EXPECT_TRUE(main_dict.GetWithoutPathExpansion("list", NULL));
931 EXPECT_FALSE(main_dict.GetWithoutPathExpansion("DNE", NULL));
932
933 EXPECT_TRUE(main_dict.GetBooleanWithoutPathExpansion("bool", NULL));
934 EXPECT_FALSE(main_dict.GetBooleanWithoutPathExpansion("int", NULL));
935 EXPECT_FALSE(main_dict.GetBooleanWithoutPathExpansion("double", NULL));
936 EXPECT_FALSE(main_dict.GetBooleanWithoutPathExpansion("string", NULL));
937 EXPECT_FALSE(main_dict.GetBooleanWithoutPathExpansion("binary", NULL));
938 EXPECT_FALSE(main_dict.GetBooleanWithoutPathExpansion("dict", NULL));
939 EXPECT_FALSE(main_dict.GetBooleanWithoutPathExpansion("list", NULL));
940 EXPECT_FALSE(main_dict.GetBooleanWithoutPathExpansion("DNE", NULL));
941
942 EXPECT_FALSE(main_dict.GetIntegerWithoutPathExpansion("bool", NULL));
943 EXPECT_TRUE(main_dict.GetIntegerWithoutPathExpansion("int", NULL));
944 EXPECT_FALSE(main_dict.GetIntegerWithoutPathExpansion("double", NULL));
945 EXPECT_FALSE(main_dict.GetIntegerWithoutPathExpansion("string", NULL));
946 EXPECT_FALSE(main_dict.GetIntegerWithoutPathExpansion("binary", NULL));
947 EXPECT_FALSE(main_dict.GetIntegerWithoutPathExpansion("dict", NULL));
948 EXPECT_FALSE(main_dict.GetIntegerWithoutPathExpansion("list", NULL));
949 EXPECT_FALSE(main_dict.GetIntegerWithoutPathExpansion("DNE", NULL));
950
951 EXPECT_FALSE(main_dict.GetDoubleWithoutPathExpansion("bool", NULL));
952 EXPECT_TRUE(main_dict.GetDoubleWithoutPathExpansion("int", NULL));
953 EXPECT_TRUE(main_dict.GetDoubleWithoutPathExpansion("double", NULL));
954 EXPECT_FALSE(main_dict.GetDoubleWithoutPathExpansion("string", NULL));
955 EXPECT_FALSE(main_dict.GetDoubleWithoutPathExpansion("binary", NULL));
956 EXPECT_FALSE(main_dict.GetDoubleWithoutPathExpansion("dict", NULL));
957 EXPECT_FALSE(main_dict.GetDoubleWithoutPathExpansion("list", NULL));
958 EXPECT_FALSE(main_dict.GetDoubleWithoutPathExpansion("DNE", NULL));
959
960 EXPECT_FALSE(main_dict.GetStringWithoutPathExpansion(
961 "bool", static_cast<std::string*>(NULL)));
962 EXPECT_FALSE(main_dict.GetStringWithoutPathExpansion(
963 "int", static_cast<std::string*>(NULL)));
964 EXPECT_FALSE(main_dict.GetStringWithoutPathExpansion(
965 "double", static_cast<std::string*>(NULL)));
966 EXPECT_TRUE(main_dict.GetStringWithoutPathExpansion(
967 "string", static_cast<std::string*>(NULL)));
968 EXPECT_FALSE(main_dict.GetStringWithoutPathExpansion(
969 "binary", static_cast<std::string*>(NULL)));
970 EXPECT_FALSE(main_dict.GetStringWithoutPathExpansion(
971 "dict", static_cast<std::string*>(NULL)));
972 EXPECT_FALSE(main_dict.GetStringWithoutPathExpansion(
973 "list", static_cast<std::string*>(NULL)));
974 EXPECT_FALSE(main_dict.GetStringWithoutPathExpansion(
975 "DNE", static_cast<std::string*>(NULL)));
976
977 EXPECT_FALSE(main_dict.GetStringWithoutPathExpansion(
978 "bool", static_cast<string16*>(NULL)));
979 EXPECT_FALSE(main_dict.GetStringWithoutPathExpansion(
980 "int", static_cast<string16*>(NULL)));
981 EXPECT_FALSE(main_dict.GetStringWithoutPathExpansion(
982 "double", static_cast<string16*>(NULL)));
983 EXPECT_TRUE(main_dict.GetStringWithoutPathExpansion(
984 "string", static_cast<string16*>(NULL)));
985 EXPECT_FALSE(main_dict.GetStringWithoutPathExpansion(
986 "binary", static_cast<string16*>(NULL)));
987 EXPECT_FALSE(main_dict.GetStringWithoutPathExpansion(
988 "dict", static_cast<string16*>(NULL)));
989 EXPECT_FALSE(main_dict.GetStringWithoutPathExpansion(
990 "list", static_cast<string16*>(NULL)));
991 EXPECT_FALSE(main_dict.GetStringWithoutPathExpansion(
992 "DNE", static_cast<string16*>(NULL)));
993
994 // There is no GetBinaryWithoutPathExpansion for some reason, but if there
995 // were it should be tested here...
996
997 EXPECT_FALSE(main_dict.GetDictionaryWithoutPathExpansion("bool", NULL));
998 EXPECT_FALSE(main_dict.GetDictionaryWithoutPathExpansion("int", NULL));
999 EXPECT_FALSE(main_dict.GetDictionaryWithoutPathExpansion("double", NULL));
1000 EXPECT_FALSE(main_dict.GetDictionaryWithoutPathExpansion("string", NULL));
1001 EXPECT_FALSE(main_dict.GetDictionaryWithoutPathExpansion("binary", NULL));
1002 EXPECT_TRUE(main_dict.GetDictionaryWithoutPathExpansion("dict", NULL));
1003 EXPECT_FALSE(main_dict.GetDictionaryWithoutPathExpansion("list", NULL));
1004 EXPECT_FALSE(main_dict.GetDictionaryWithoutPathExpansion("DNE", NULL));
1005
1006 EXPECT_FALSE(main_dict.GetListWithoutPathExpansion("bool", NULL));
1007 EXPECT_FALSE(main_dict.GetListWithoutPathExpansion("int", NULL));
1008 EXPECT_FALSE(main_dict.GetListWithoutPathExpansion("double", NULL));
1009 EXPECT_FALSE(main_dict.GetListWithoutPathExpansion("string", NULL));
1010 EXPECT_FALSE(main_dict.GetListWithoutPathExpansion("binary", NULL));
1011 EXPECT_FALSE(main_dict.GetListWithoutPathExpansion("dict", NULL));
1012 EXPECT_TRUE(main_dict.GetListWithoutPathExpansion("list", NULL));
1013 EXPECT_FALSE(main_dict.GetListWithoutPathExpansion("DNE", NULL));
1014
1015 EXPECT_TRUE(main_list.Get(0, NULL));
1016 EXPECT_TRUE(main_list.Get(1, NULL));
1017 EXPECT_TRUE(main_list.Get(2, NULL));
1018 EXPECT_TRUE(main_list.Get(3, NULL));
1019 EXPECT_TRUE(main_list.Get(4, NULL));
1020 EXPECT_TRUE(main_list.Get(5, NULL));
1021 EXPECT_TRUE(main_list.Get(6, NULL));
1022 EXPECT_FALSE(main_list.Get(7, NULL));
1023
1024 EXPECT_TRUE(main_list.GetBoolean(0, NULL));
1025 EXPECT_FALSE(main_list.GetBoolean(1, NULL));
1026 EXPECT_FALSE(main_list.GetBoolean(2, NULL));
1027 EXPECT_FALSE(main_list.GetBoolean(3, NULL));
1028 EXPECT_FALSE(main_list.GetBoolean(4, NULL));
1029 EXPECT_FALSE(main_list.GetBoolean(5, NULL));
1030 EXPECT_FALSE(main_list.GetBoolean(6, NULL));
1031 EXPECT_FALSE(main_list.GetBoolean(7, NULL));
1032
1033 EXPECT_FALSE(main_list.GetInteger(0, NULL));
1034 EXPECT_TRUE(main_list.GetInteger(1, NULL));
1035 EXPECT_FALSE(main_list.GetInteger(2, NULL));
1036 EXPECT_FALSE(main_list.GetInteger(3, NULL));
1037 EXPECT_FALSE(main_list.GetInteger(4, NULL));
1038 EXPECT_FALSE(main_list.GetInteger(5, NULL));
1039 EXPECT_FALSE(main_list.GetInteger(6, NULL));
1040 EXPECT_FALSE(main_list.GetInteger(7, NULL));
1041
1042 EXPECT_FALSE(main_list.GetDouble(0, NULL));
1043 EXPECT_TRUE(main_list.GetDouble(1, NULL));
1044 EXPECT_TRUE(main_list.GetDouble(2, NULL));
1045 EXPECT_FALSE(main_list.GetDouble(3, NULL));
1046 EXPECT_FALSE(main_list.GetDouble(4, NULL));
1047 EXPECT_FALSE(main_list.GetDouble(5, NULL));
1048 EXPECT_FALSE(main_list.GetDouble(6, NULL));
1049 EXPECT_FALSE(main_list.GetDouble(7, NULL));
1050
1051 EXPECT_FALSE(main_list.GetString(0, static_cast<std::string*>(NULL)));
1052 EXPECT_FALSE(main_list.GetString(1, static_cast<std::string*>(NULL)));
1053 EXPECT_FALSE(main_list.GetString(2, static_cast<std::string*>(NULL)));
1054 EXPECT_TRUE(main_list.GetString(3, static_cast<std::string*>(NULL)));
1055 EXPECT_FALSE(main_list.GetString(4, static_cast<std::string*>(NULL)));
1056 EXPECT_FALSE(main_list.GetString(5, static_cast<std::string*>(NULL)));
1057 EXPECT_FALSE(main_list.GetString(6, static_cast<std::string*>(NULL)));
1058 EXPECT_FALSE(main_list.GetString(7, static_cast<std::string*>(NULL)));
1059
1060 EXPECT_FALSE(main_list.GetString(0, static_cast<string16*>(NULL)));
1061 EXPECT_FALSE(main_list.GetString(1, static_cast<string16*>(NULL)));
1062 EXPECT_FALSE(main_list.GetString(2, static_cast<string16*>(NULL)));
1063 EXPECT_TRUE(main_list.GetString(3, static_cast<string16*>(NULL)));
1064 EXPECT_FALSE(main_list.GetString(4, static_cast<string16*>(NULL)));
1065 EXPECT_FALSE(main_list.GetString(5, static_cast<string16*>(NULL)));
1066 EXPECT_FALSE(main_list.GetString(6, static_cast<string16*>(NULL)));
1067 EXPECT_FALSE(main_list.GetString(7, static_cast<string16*>(NULL)));
1068
1069 EXPECT_FALSE(main_list.GetBinary(0, NULL));
1070 EXPECT_FALSE(main_list.GetBinary(1, NULL));
1071 EXPECT_FALSE(main_list.GetBinary(2, NULL));
1072 EXPECT_FALSE(main_list.GetBinary(3, NULL));
1073 EXPECT_TRUE(main_list.GetBinary(4, NULL));
1074 EXPECT_FALSE(main_list.GetBinary(5, NULL));
1075 EXPECT_FALSE(main_list.GetBinary(6, NULL));
1076 EXPECT_FALSE(main_list.GetBinary(7, NULL));
1077
1078 EXPECT_FALSE(main_list.GetDictionary(0, NULL));
1079 EXPECT_FALSE(main_list.GetDictionary(1, NULL));
1080 EXPECT_FALSE(main_list.GetDictionary(2, NULL));
1081 EXPECT_FALSE(main_list.GetDictionary(3, NULL));
1082 EXPECT_FALSE(main_list.GetDictionary(4, NULL));
1083 EXPECT_TRUE(main_list.GetDictionary(5, NULL));
1084 EXPECT_FALSE(main_list.GetDictionary(6, NULL));
1085 EXPECT_FALSE(main_list.GetDictionary(7, NULL));
1086
1087 EXPECT_FALSE(main_list.GetList(0, NULL));
1088 EXPECT_FALSE(main_list.GetList(1, NULL));
1089 EXPECT_FALSE(main_list.GetList(2, NULL));
1090 EXPECT_FALSE(main_list.GetList(3, NULL));
1091 EXPECT_FALSE(main_list.GetList(4, NULL));
1092 EXPECT_FALSE(main_list.GetList(5, NULL));
1093 EXPECT_TRUE(main_list.GetList(6, NULL));
1094 EXPECT_FALSE(main_list.GetList(7, NULL));
1095 }
1096
812 } // namespace base 1097 } // namespace base
OLDNEW
« no previous file with comments | « base/values.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698