Modernize CPDF_LinkExtractTest code.
Use range-based for-loops to iterate through the test cases. Name
constants kFoo.
Change-Id: Ia77e72660aac14883ba7d77742fd9f6e843e4e43
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/86570
Reviewed-by: Hui Yingst <nigi@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdftext/cpdf_linkextract_unittest.cpp b/core/fpdftext/cpdf_linkextract_unittest.cpp
index f1528fa..66b30f4 100644
--- a/core/fpdftext/cpdf_linkextract_unittest.cpp
+++ b/core/fpdftext/cpdf_linkextract_unittest.cpp
@@ -5,7 +5,6 @@
#include "core/fpdftext/cpdf_linkextract.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/base/cxx17_backports.h"
// Class to help test functions in CPDF_LinkExtract class.
class CPDF_TestLinkExtract final : public CPDF_LinkExtract {
@@ -22,7 +21,7 @@
TEST(CPDF_LinkExtractTest, CheckMailLink) {
CPDF_TestLinkExtract extractor;
// Check cases that fail to extract valid mail link.
- const wchar_t* const invalid_strs[] = {
+ const wchar_t* const kInvalidStrings[] = {
L"",
L"peter.pan", // '@' is required.
L"abc@server", // Domain name needs at least one '.'.
@@ -31,15 +30,14 @@
L"abc@.xyz.org", // Domain name should not start with '.'.
L"fan@g..com" // Domain name should not have consecutive '.'
};
- for (size_t i = 0; i < pdfium::size(invalid_strs); ++i) {
- const wchar_t* const input = invalid_strs[i];
+ for (const wchar_t* input : kInvalidStrings) {
WideString text_str(input);
EXPECT_FALSE(extractor.CheckMailLink(&text_str)) << input;
}
// Check cases that can extract valid mail link.
// An array of {input_string, expected_extracted_email_address}.
- const wchar_t* const valid_strs[][2] = {
+ const wchar_t* const kValidStrings[][2] = {
{L"peter@abc.d", L"peter@abc.d"},
{L"red.teddy.b@abc.com", L"red.teddy.b@abc.com"},
{L"abc_@gmail.com", L"abc_@gmail.com"}, // '_' is ok before '@'.
@@ -52,11 +50,11 @@
{L"fan@g.com..", L"fan@g.com"}, // Trim the ending periods.
{L"CAP.cap@Gmail.Com", L"CAP.cap@Gmail.Com"}, // Keep the original case.
};
- for (size_t i = 0; i < pdfium::size(valid_strs); ++i) {
- const wchar_t* const input = valid_strs[i][0];
+ for (const auto& it : kValidStrings) {
+ const wchar_t* const input = it[0];
WideString text_str(input);
WideString expected_str(L"mailto:");
- expected_str += valid_strs[i][1];
+ expected_str += it[1];
EXPECT_TRUE(extractor.CheckMailLink(&text_str)) << input;
EXPECT_STREQ(expected_str.c_str(), text_str.c_str());
}
@@ -66,7 +64,7 @@
CPDF_TestLinkExtract extractor;
// Check cases that fail to extract valid web link.
// The last few are legit web addresses that we don't handle now.
- const wchar_t* const invalid_cases[] = {
+ const wchar_t* const kInvalidCases[] = {
L"", L"http", L"www.", L"https-and-www",
L"http:/abc.com", // Missing slash.
L"http://((()),", // Only invalid chars in host name.
@@ -78,16 +76,15 @@
// Web addresses that in correct format that we don't handle.
L"abc.example.com", // URL without scheme.
};
- const int32_t DEFAULT_VALUE = -42;
- for (size_t i = 0; i < pdfium::size(invalid_cases); ++i) {
- const wchar_t* const input = invalid_cases[i];
+ constexpr int32_t kDefaultValue = -42;
+ for (const wchar_t* input : kInvalidCases) {
WideString text_str(input);
- int32_t start_offset = DEFAULT_VALUE;
- int32_t count = DEFAULT_VALUE;
+ int32_t start_offset = kDefaultValue;
+ int32_t count = kDefaultValue;
EXPECT_FALSE(extractor.CheckWebLink(&text_str, &start_offset, &count))
<< input;
- EXPECT_EQ(DEFAULT_VALUE, start_offset) << input;
- EXPECT_EQ(DEFAULT_VALUE, count) << input;
+ EXPECT_EQ(kDefaultValue, start_offset) << input;
+ EXPECT_EQ(kDefaultValue, count) << input;
}
// Check cases that can extract valid web link.
@@ -98,7 +95,7 @@
const int32_t start_offset;
const int32_t count;
};
- const ValidCase valid_cases[] = {
+ const ValidCase kValidCases[] = {
{L"http://www.example.com", L"http://www.example.com", 0,
22}, // standard URL.
{L"http://www.example.com:88", L"http://www.example.com:88", 0,
@@ -174,15 +171,15 @@
{L"www.测试。net。", L"http://www.测试。net。", 0, 11},
{L"www.测试.net;", L"http://www.测试.net;", 0, 11},
};
- for (size_t i = 0; i < pdfium::size(valid_cases); ++i) {
- const wchar_t* const input = valid_cases[i].input_string;
+ for (const auto& it : kValidCases) {
+ const wchar_t* const input = it.input_string;
WideString text_str(input);
- int32_t start_offset = DEFAULT_VALUE;
- int32_t count = DEFAULT_VALUE;
+ int32_t start_offset = kDefaultValue;
+ int32_t count = kDefaultValue;
EXPECT_TRUE(extractor.CheckWebLink(&text_str, &start_offset, &count))
<< input;
- EXPECT_STREQ(valid_cases[i].url_extracted, text_str.c_str());
- EXPECT_EQ(valid_cases[i].start_offset, start_offset) << input;
- EXPECT_EQ(valid_cases[i].count, count) << input;
+ EXPECT_STREQ(it.url_extracted, text_str.c_str());
+ EXPECT_EQ(it.start_offset, start_offset) << input;
+ EXPECT_EQ(it.count, count) << input;
}
}