Index: core/fxcrt/fx_basic_util_unittest.cpp |
diff --git a/core/fxcrt/fx_basic_util_unittest.cpp b/core/fxcrt/fx_basic_util_unittest.cpp |
index 3272eab70c27439cfcb8c99fc8aede009e1aa3f9..12eaf57944afc60204077d3a9b696a08ba0d4fd4 100644 |
--- a/core/fxcrt/fx_basic_util_unittest.cpp |
+++ b/core/fxcrt/fx_basic_util_unittest.cpp |
@@ -28,3 +28,34 @@ TEST(fxge, GetBits32) { |
} |
} |
} |
+ |
+TEST(fxcrt, FX_atonum) { |
+ int i; |
+ EXPECT_TRUE(FX_atonum("10", &i)); |
+ EXPECT_EQ(10, i); |
+ |
+ EXPECT_TRUE(FX_atonum("-10", &i)); |
+ EXPECT_EQ(-10, i); |
+ |
+ EXPECT_TRUE(FX_atonum("+10", &i)); |
+ EXPECT_EQ(10, i); |
+ |
+ // Value overflows. |
+ EXPECT_TRUE(FX_atonum("4223423494965252", &i)); |
+ EXPECT_EQ(0, i); |
+ |
+ // No explicit sign will allow the number to go negative. This is for things |
+ // like the encryption Permissions flag (Table 3.20 PDF 1.7 spec) |
+ EXPECT_TRUE(FX_atonum("4294965252", &i)); |
+ EXPECT_EQ(-2044, i); |
+ |
+ EXPECT_TRUE(FX_atonum("-4294965252", &i)); |
+ EXPECT_EQ(0, i); |
+ |
+ EXPECT_TRUE(FX_atonum("+4294965252", &i)); |
+ EXPECT_EQ(0, i); |
+ |
+ float f; |
+ EXPECT_FALSE(FX_atonum("3.24", &f)); |
+ EXPECT_FLOAT_EQ(3.24f, f); |
+} |