aboutsummaryrefslogtreecommitdiffstats
path: root/googlemock/test
diff options
context:
space:
mode:
authorAbseil Team <absl-team@google.com>2018-09-13 11:27:56 -0400
committerGennadiy Civil <misterg@google.com>2018-09-14 11:13:48 -0400
commitffc9baeb4cb81a7db250249920a9bd3d5ace760a (patch)
treeb8107cc41ca5928f4ecb525cbf933089fdb725b1 /googlemock/test
parentcfe0ae867857dad6d14ff72a2f02808086021f35 (diff)
downloadgoogletest-ffc9baeb4cb81a7db250249920a9bd3d5ace760a.tar.gz
googletest-ffc9baeb4cb81a7db250249920a9bd3d5ace760a.tar.bz2
googletest-ffc9baeb4cb81a7db250249920a9bd3d5ace760a.zip
Googletest export
Treat default-constructed string_view same as constructed from "". In the context of string comparison (e.g. HasSubstr, StartsWith, EndsWith, etc.), a default-constructed string_view (nullptr) should be semantically same as a empty string "". PiperOrigin-RevId: 212816839
Diffstat (limited to 'googlemock/test')
-rw-r--r--googlemock/test/gmock-matchers_test.cc39
1 files changed, 29 insertions, 10 deletions
diff --git a/googlemock/test/gmock-matchers_test.cc b/googlemock/test/gmock-matchers_test.cc
index 4697f0bf..79eb552e 100644
--- a/googlemock/test/gmock-matchers_test.cc
+++ b/googlemock/test/gmock-matchers_test.cc
@@ -1335,6 +1335,11 @@ TEST(StrEqTest, MatchesEqualString) {
EXPECT_TRUE(m3.Matches(absl::string_view("Hello")));
EXPECT_FALSE(m3.Matches(absl::string_view("hello")));
EXPECT_FALSE(m3.Matches(absl::string_view()));
+
+ Matcher<const absl::string_view&> m_empty = StrEq("");
+ EXPECT_TRUE(m_empty.Matches(absl::string_view("")));
+ EXPECT_TRUE(m_empty.Matches(absl::string_view()));
+ EXPECT_FALSE(m_empty.Matches(absl::string_view("hello")));
#endif // GTEST_HAS_ABSL
}
@@ -1459,6 +1464,10 @@ TEST(HasSubstrTest, WorksForStringClasses) {
const Matcher<const std::string&> m2 = HasSubstr("foo");
EXPECT_TRUE(m2.Matches(std::string("I love food.")));
EXPECT_FALSE(m2.Matches(std::string("tofo")));
+
+ const Matcher<std::string> m_empty = HasSubstr("");
+ EXPECT_TRUE(m_empty.Matches(std::string()));
+ EXPECT_TRUE(m_empty.Matches(std::string("not empty")));
}
// Tests that HasSubstr() works for matching C-string-typed values.
@@ -1472,6 +1481,11 @@ TEST(HasSubstrTest, WorksForCStrings) {
EXPECT_TRUE(m2.Matches("I love food."));
EXPECT_FALSE(m2.Matches("tofo"));
EXPECT_FALSE(m2.Matches(NULL));
+
+ const Matcher<const char*> m_empty = HasSubstr("");
+ EXPECT_TRUE(m_empty.Matches("not empty"));
+ EXPECT_TRUE(m_empty.Matches(""));
+ EXPECT_FALSE(m_empty.Matches(NULL));
}
#if GTEST_HAS_ABSL
@@ -1489,7 +1503,8 @@ TEST(HasSubstrTest, WorksForStringViewClasses) {
const Matcher<const absl::string_view&> m3 = HasSubstr("");
EXPECT_TRUE(m3.Matches(absl::string_view("foo")));
- EXPECT_FALSE(m3.Matches(absl::string_view()));
+ EXPECT_TRUE(m3.Matches(absl::string_view("")));
+ EXPECT_TRUE(m3.Matches(absl::string_view()));
}
#endif // GTEST_HAS_ABSL
@@ -1713,6 +1728,13 @@ TEST(StartsWithTest, MatchesStringWithGivenPrefix) {
EXPECT_TRUE(m2.Matches("High"));
EXPECT_FALSE(m2.Matches("H"));
EXPECT_FALSE(m2.Matches(" Hi"));
+
+#if GTEST_HAS_ABSL
+ const Matcher<absl::string_view> m_empty = StartsWith("");
+ EXPECT_TRUE(m_empty.Matches(absl::string_view()));
+ EXPECT_TRUE(m_empty.Matches(absl::string_view("")));
+ EXPECT_TRUE(m_empty.Matches(absl::string_view("not empty")));
+#endif // GTEST_HAS_ABSL
}
TEST(StartsWithTest, CanDescribeSelf) {
@@ -1748,9 +1770,8 @@ TEST(EndsWithTest, MatchesStringWithGivenSuffix) {
const Matcher<const absl::string_view&> m4 = EndsWith("");
EXPECT_TRUE(m4.Matches("Hi"));
EXPECT_TRUE(m4.Matches(""));
- // Default-constructed absl::string_view should not match anything, in order
- // to distinguish it from an empty string.
- EXPECT_FALSE(m4.Matches(absl::string_view()));
+ EXPECT_TRUE(m4.Matches(absl::string_view()));
+ EXPECT_TRUE(m4.Matches(absl::string_view("")));
#endif // GTEST_HAS_ABSL
}
@@ -1777,11 +1798,10 @@ TEST(MatchesRegexTest, MatchesStringMatchingGivenRegex) {
EXPECT_TRUE(m3.Matches(absl::string_view("az")));
EXPECT_TRUE(m3.Matches(absl::string_view("abcz")));
EXPECT_FALSE(m3.Matches(absl::string_view("1az")));
- // Default-constructed absl::string_view should not match anything, in order
- // to distinguish it from an empty string.
EXPECT_FALSE(m3.Matches(absl::string_view()));
const Matcher<const absl::string_view&> m4 = MatchesRegex("");
- EXPECT_FALSE(m4.Matches(absl::string_view()));
+ EXPECT_TRUE(m4.Matches(absl::string_view("")));
+ EXPECT_TRUE(m4.Matches(absl::string_view()));
#endif // GTEST_HAS_ABSL
}
@@ -1816,11 +1836,10 @@ TEST(ContainsRegexTest, MatchesStringContainingGivenRegex) {
EXPECT_TRUE(m3.Matches(absl::string_view("azbz")));
EXPECT_TRUE(m3.Matches(absl::string_view("az1")));
EXPECT_FALSE(m3.Matches(absl::string_view("1a")));
- // Default-constructed absl::string_view should not match anything, in order
- // to distinguish it from an empty string.
EXPECT_FALSE(m3.Matches(absl::string_view()));
const Matcher<const absl::string_view&> m4 = ContainsRegex("");
- EXPECT_FALSE(m4.Matches(absl::string_view()));
+ EXPECT_TRUE(m4.Matches(absl::string_view("")));
+ EXPECT_TRUE(m4.Matches(absl::string_view()));
#endif // GTEST_HAS_ABSL
}