From 614d20a64195e64c047432251e3fb3e7b5142425 Mon Sep 17 00:00:00 2001 From: Wei Li Date: Tue, 15 Mar 2016 13:55:12 -0700 Subject: Fix CJS_PublicMethods::IsNumber() with unit test and some cleanup R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1797423002 . --- fpdfsdk/javascript/public_methods_unittest.cpp | 51 ++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 fpdfsdk/javascript/public_methods_unittest.cpp (limited to 'fpdfsdk/javascript/public_methods_unittest.cpp') diff --git a/fpdfsdk/javascript/public_methods_unittest.cpp b/fpdfsdk/javascript/public_methods_unittest.cpp new file mode 100644 index 0000000000..ace0920e8f --- /dev/null +++ b/fpdfsdk/javascript/public_methods_unittest.cpp @@ -0,0 +1,51 @@ +// Copyright 2016 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "fpdfsdk/javascript/PublicMethods.h" + +#include "testing/gtest/include/gtest/gtest.h" +#include "testing/test_support.h" + +TEST(CJS_PublicMethods, IsNumber) { + // TODO(weili): Check whether results from case 0, 1, 10, 15 are intended. + struct { + const wchar_t* input; + bool expected; + } test_data[] = { + // Empty string. + {L"", true}, + // Only whitespaces. + {L" ", true}, + // Content with invalid characters. + {L"xyz00", false}, + {L"1%", false}, + // Hex string. + {L"0x234", false}, + // Signed numbers. + {L"+123", true}, + {L"-98765", true}, + // Numbers with whitespaces. + {L" 345 ", true}, + // Float numbers. + {L"-1e5", false}, + {L"-2e", false}, + {L"e-5", true}, + {L"0.023", true}, + {L".356089", true}, + {L"1e-9", true}, + {L"-1.23e+23", true}, + // Numbers with commas. + {L"1,000,000", false}, + {L"560,024", true}, + // Regular numbers. + {L"0", true}, + {L"0123", true}, + {L"9876123", true}, + }; + for (size_t i = 0; i < FX_ArraySize(test_data); ++i) { + EXPECT_EQ(test_data[i].expected, + CJS_PublicMethods::IsNumber(test_data[i].input)) + << "for case " << i; + } +} -- cgit v1.2.3