OLD | NEW |
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 Loading... |
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 |
OLD | NEW |