diff --git a/core/fxcrt/fx_string_unittest.cpp b/core/fxcrt/fx_string_unittest.cpp
index d4a7bf8..601deb2 100644
--- a/core/fxcrt/fx_string_unittest.cpp
+++ b/core/fxcrt/fx_string_unittest.cpp
@@ -73,6 +73,23 @@
 
   EXPECT_FLOAT_EQ(1.000000119f, StringToFloat("1.000000119"));
   EXPECT_FLOAT_EQ(1.999999881f, StringToFloat("1.999999881"));
+
+  EXPECT_FLOAT_EQ(0.25f, StringToFloat(L"+0.25"));
+
+  // TODO(crbug.com/367395351): Should be 1.2e34f.
+  EXPECT_FLOAT_EQ(1.2034f, StringToFloat("1.2e34"));
+
+  EXPECT_FLOAT_EQ(std::numeric_limits<float>::infinity(),
+                  StringToFloat("999999999999999999999999999999999999999"));
+  EXPECT_FLOAT_EQ(-std::numeric_limits<float>::infinity(),
+                  StringToFloat("-999999999999999999999999999999999999999"));
+
+  EXPECT_FLOAT_EQ(0.0f, StringToFloat("invalid"));
+
+  // Test the exact float value. Use EXPECT_EQ, which does an exact comparison,
+  // instead of EXPECT_FLOAT_EQ, which allows slight precision error.
+  // TODO(crbug.com/366309453): Should round to 38.89528656005859375f.
+  EXPECT_EQ(38.895282745361328125f, StringToFloat("38.895285"));
 }
 
 TEST(fxstring, WideStringToFloat) {
@@ -96,6 +113,23 @@
 
   EXPECT_FLOAT_EQ(1.000000119f, StringToFloat(L"1.000000119"));
   EXPECT_FLOAT_EQ(1.999999881f, StringToFloat(L"1.999999881"));
+
+  EXPECT_FLOAT_EQ(0.25f, StringToFloat(L"+0.25"));
+
+  // TODO(crbug.com/367395351): Should be 1.2e34f.
+  EXPECT_FLOAT_EQ(1.2034f, StringToFloat(L"1.2e34"));
+
+  EXPECT_FLOAT_EQ(std::numeric_limits<float>::infinity(),
+                  StringToFloat(L"999999999999999999999999999999999999999"));
+  EXPECT_FLOAT_EQ(-std::numeric_limits<float>::infinity(),
+                  StringToFloat(L"-999999999999999999999999999999999999999"));
+
+  EXPECT_FLOAT_EQ(0.0f, StringToFloat(L"invalid"));
+
+  // Test the exact float value. Use EXPECT_EQ, which does an exact comparison,
+  // instead of EXPECT_FLOAT_EQ, which allows slight precision error.
+  // TODO(crbug.com/366309453): Should round to 38.89528656005859375f.
+  EXPECT_EQ(38.895282745361328125f, StringToFloat(L"38.895285"));
 }
 
 TEST(fxstring, ByteStringToDouble) {
@@ -119,6 +153,35 @@
 
   EXPECT_DOUBLE_EQ(1.000000119, StringToDouble("1.000000119"));
   EXPECT_DOUBLE_EQ(1.999999881, StringToDouble("1.999999881"));
+
+  EXPECT_DOUBLE_EQ(0.25, StringToDouble("+0.25"));
+
+  // TODO(crbug.com/367395351): Should be 1.2e34.
+  EXPECT_DOUBLE_EQ(1.2034, StringToDouble("1.2e34"));
+
+  EXPECT_DOUBLE_EQ(
+      std::numeric_limits<double>::infinity(),
+      StringToDouble(
+          "99999999999999999999999999999999999999999999999999999999999999999999"
+          "99999999999999999999999999999999999999999999999999999999999999999999"
+          "99999999999999999999999999999999999999999999999999999999999999999999"
+          "99999999999999999999999999999999999999999999999999999999999999999999"
+          "99999999999999999999999999999999999999"));
+  EXPECT_DOUBLE_EQ(
+      -std::numeric_limits<double>::infinity(),
+      StringToDouble(
+          "-9999999999999999999999999999999999999999999999999999999999999999999"
+          "99999999999999999999999999999999999999999999999999999999999999999999"
+          "99999999999999999999999999999999999999999999999999999999999999999999"
+          "99999999999999999999999999999999999999999999999999999999999999999999"
+          "99999999999999999999999999999999999999"));
+
+  EXPECT_DOUBLE_EQ(0.0, StringToDouble("invalid"));
+
+  // Test the exact double value. Use EXPECT_EQ, which does an exact comparison,
+  // instead of EXPECT_DOUBLE_EQ, which allows slight precision error.
+  // TODO(crbug.com/366309453): Should round to 1.9998779296892903.
+  EXPECT_EQ(1.9998779296800002, StringToDouble("1.99987792968929034"));
 }
 
 TEST(fxstring, WideStringToDouble) {
@@ -142,6 +205,35 @@
 
   EXPECT_DOUBLE_EQ(1.000000119, StringToDouble(L"1.000000119"));
   EXPECT_DOUBLE_EQ(1.999999881, StringToDouble(L"1.999999881"));
+
+  EXPECT_DOUBLE_EQ(0.25, StringToDouble(L"+0.25"));
+
+  // TODO(crbug.com/367395351): Should be 1.2e34.
+  EXPECT_DOUBLE_EQ(1.2034, StringToDouble(L"1.2e34"));
+
+  EXPECT_DOUBLE_EQ(
+      std::numeric_limits<double>::infinity(),
+      StringToDouble(
+          L"9999999999999999999999999999999999999999999999999999999999999999999"
+          L"9999999999999999999999999999999999999999999999999999999999999999999"
+          L"9999999999999999999999999999999999999999999999999999999999999999999"
+          L"9999999999999999999999999999999999999999999999999999999999999999999"
+          L"999999999999999999999999999999999999999999"));
+  EXPECT_DOUBLE_EQ(
+      -std::numeric_limits<double>::infinity(),
+      StringToDouble(
+          L"-999999999999999999999999999999999999999999999999999999999999999999"
+          L"9999999999999999999999999999999999999999999999999999999999999999999"
+          L"9999999999999999999999999999999999999999999999999999999999999999999"
+          L"9999999999999999999999999999999999999999999999999999999999999999999"
+          L"999999999999999999999999999999999999999999"));
+
+  EXPECT_DOUBLE_EQ(0.0, StringToDouble(L"invalid"));
+
+  // Test the exact double value. Use EXPECT_EQ, which does an exact comparison,
+  // instead of EXPECT_DOUBLE_EQ, which allows slight precision error.
+  // TODO(crbug.com/366309453): Should round to 1.9998779296892903.
+  EXPECT_EQ(1.9998779296800002, StringToDouble(L"1.99987792968929034"));
 }
 
 TEST(fxstring, SplitByteString) {
