summaryrefslogtreecommitdiffstats
path: root/base/json_reader_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'base/json_reader_unittest.cc')
-rw-r--r--base/json_reader_unittest.cc28
1 files changed, 27 insertions, 1 deletions
diff --git a/base/json_reader_unittest.cc b/base/json_reader_unittest.cc
index 1a81425..da902f2 100644
--- a/base/json_reader_unittest.cc
+++ b/base/json_reader_unittest.cc
@@ -30,6 +30,7 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "base/json_reader.h"
#include "base/values.h"
+#include "build/build_config.h"
TEST(JSONReaderTest, Reading) {
// some whitespace checking
@@ -88,16 +89,41 @@ TEST(JSONReaderTest, Reading) {
root = NULL;
ASSERT_TRUE(JSONReader::JsonToValue("2147483648", &root, false, false));
ASSERT_TRUE(root);
+ double real_val;
+#ifdef ARCH_CPU_32_BITS
+ ASSERT_TRUE(root->IsType(Value::TYPE_REAL));
+ real_val = 0.0;
+ ASSERT_TRUE(root->GetAsReal(&real_val));
+ ASSERT_DOUBLE_EQ(2147483648.0, real_val);
+#else
+ ASSERT_TRUE(root->IsType(Value::TYPE_INTEGER));
+ int_val = 0;
+ ASSERT_TRUE(root->GetAsInteger(&int_val));
+ ASSERT_EQ(2147483648, int_val);
+#endif
+ delete root;
root = NULL;
ASSERT_TRUE(JSONReader::JsonToValue("-2147483649", &root, false, false));
ASSERT_TRUE(root);
+#ifdef ARCH_CPU_32_BITS
+ ASSERT_TRUE(root->IsType(Value::TYPE_REAL));
+ real_val = 0.0;
+ ASSERT_TRUE(root->GetAsReal(&real_val));
+ ASSERT_DOUBLE_EQ(-2147483649.0, real_val);
+#else
+ ASSERT_TRUE(root->IsType(Value::TYPE_INTEGER));
+ int_val = 0;
+ ASSERT_TRUE(root->GetAsInteger(&int_val));
+ ASSERT_EQ(-2147483649, int_val);
+#endif
+ delete root;
// Parse a double
root = NULL;
ASSERT_TRUE(JSONReader::JsonToValue("43.1", &root, false, false));
ASSERT_TRUE(root);
ASSERT_TRUE(root->IsType(Value::TYPE_REAL));
- double real_val = 0.0;
+ real_val = 0.0;
ASSERT_TRUE(root->GetAsReal(&real_val));
ASSERT_DOUBLE_EQ(43.1, real_val);
delete root;