diff options
author | zhanyong.wan <zhanyong.wan@8415998a-534a-0410-bf83-d39667b30386> | 2013-03-25 16:27:03 +0000 |
---|---|---|
committer | zhanyong.wan <zhanyong.wan@8415998a-534a-0410-bf83-d39667b30386> | 2013-03-25 16:27:03 +0000 |
commit | 1f122a06e6aad4d234123d2d8c1e352029ce0742 (patch) | |
tree | 9760e4477a4ca9c8405dab2dbe3d0dd63c266ea5 /include | |
parent | 2eab17b76d350dac1b1c85879ec8e1135da615ce (diff) | |
download | googletest-1f122a06e6aad4d234123d2d8c1e352029ce0742.tar.gz googletest-1f122a06e6aad4d234123d2d8c1e352029ce0742.tar.bz2 googletest-1f122a06e6aad4d234123d2d8c1e352029ce0742.zip |
Adds special support for matching StringPiece. Pulls in gtest r646.
Diffstat (limited to 'include')
-rw-r--r-- | include/gmock/gmock-matchers.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/include/gmock/gmock-matchers.h b/include/gmock/gmock-matchers.h index 83311280..ceb73fdd 100644 --- a/include/gmock/gmock-matchers.h +++ b/include/gmock/gmock-matchers.h @@ -318,6 +318,51 @@ class GTEST_API_ Matcher<internal::string> Matcher(const char* s); // NOLINT }; +#if GTEST_HAS_STRING_PIECE_ +// The following two specializations allow the user to write str +// instead of Eq(str) and "foo" instead of Eq("foo") when a StringPiece +// matcher is expected. +template <> +class GTEST_API_ Matcher<const StringPiece&> + : public internal::MatcherBase<const StringPiece&> { + public: + Matcher() {} + + explicit Matcher(const MatcherInterface<const StringPiece&>* impl) + : internal::MatcherBase<const StringPiece&>(impl) {} + + // Allows the user to write str instead of Eq(str) sometimes, where + // str is a string object. + Matcher(const internal::string& s); // NOLINT + + // Allows the user to write "foo" instead of Eq("foo") sometimes. + Matcher(const char* s); // NOLINT + + // Allows the user to pass StringPieces directly. + Matcher(StringPiece s); // NOLINT +}; + +template <> +class GTEST_API_ Matcher<StringPiece> + : public internal::MatcherBase<StringPiece> { + public: + Matcher() {} + + explicit Matcher(const MatcherInterface<StringPiece>* impl) + : internal::MatcherBase<StringPiece>(impl) {} + + // Allows the user to write str instead of Eq(str) sometimes, where + // str is a string object. + Matcher(const internal::string& s); // NOLINT + + // Allows the user to write "foo" instead of Eq("foo") sometimes. + Matcher(const char* s); // NOLINT + + // Allows the user to pass StringPieces directly. + Matcher(StringPiece s); // NOLINT +}; +#endif // GTEST_HAS_STRING_PIECE_ + // The PolymorphicMatcher class template makes it easy to implement a // polymorphic matcher (i.e. a matcher that can match values of more // than one type, e.g. Eq(n) and NotNull()). |