Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: test/UtilTest.cpp

Issue 29331055: Issue #1234 - Remove 'CString' from PluginFilter.* (Closed)
Patch Set: Created Nov. 29, 2015, 3:49 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: test/UtilTest.cpp
===================================================================
--- a/test/UtilTest.cpp
+++ b/test/UtilTest.cpp
@@ -13,10 +13,10 @@
*
* You should have received a copy of the GNU General Public License
* along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
- */
-#include <gtest/gtest.h>
-#include "../src/shared/Utils.h"
-
+ */
+#include <gtest/gtest.h>
+#include "../src/shared/Utils.h"
+
namespace
{
void TrimTestBody(std::wstring input, std::wstring expected)
sergei 2015/11/30 12:37:54 It's not introduces in this change set but the com
Eric 2015/11/30 15:54:07 Done.
@@ -24,79 +24,156 @@
std::wstring trimmed = TrimString(input);
ASSERT_EQ(expected, trimmed);
}
+
+ void TrimLeftTestBody(std::wstring input, std::wstring expected)
sergei 2015/11/30 12:37:54 Why not to pass arguments as constant references?
sergei 2015/11/30 12:37:54 It would be better to call it like ExpectEqualToLe
Eric 2015/11/30 15:54:07 I'm not going to bother with the renaming. I don't
Eric 2015/11/30 15:54:08 Done.
+ {
+ std::wstring trimmed = TrimStringLeft(input);
+ ASSERT_EQ(expected, trimmed);
sergei 2015/11/30 12:37:54 It should not stop the tests, could you please use
Eric 2015/11/30 15:54:07 Done.
+ }
+
+ void TrimRightTestBody(std::wstring input, std::wstring expected)
sergei 2015/11/30 12:37:54 ExpectEqualToRightTrimmed(expected, input);
sergei 2015/11/30 12:37:54 Same here, constant references
Eric 2015/11/30 15:54:07 Done.
+ {
+ std::wstring trimmed = TrimStringRight(input);
+ ASSERT_EQ(expected, trimmed);
sergei 2015/11/30 12:37:55 EXPECT_EQ
Eric 2015/11/30 15:54:07 Done.
+ }
}
TEST(TrimTest, Trim00)
{
- TrimTestBody(L"", L"");
+ const std::wstring x = L"";
+ TrimTestBody(x, L"");
+ TrimLeftTestBody(x, L"");
+ TrimRightTestBody(x, L"");
}
TEST(TrimTest, Trim01)
{
- TrimTestBody(L" ", L"");
+ const std::wstring x = L" ";
+ TrimTestBody(x, L"");
+ TrimLeftTestBody(x, L"");
+ TrimRightTestBody(x, L"");
}
TEST(TrimTest, Trim02)
{
- TrimTestBody(L"\n", L"");
+ const std::wstring x = L"\n";
+ TrimTestBody(x, L"");
+ TrimLeftTestBody(x, L"");
+ TrimRightTestBody(x, L"");
}
TEST(TrimTest, Trim03)
{
- TrimTestBody(L"\r", L"");
+ const std::wstring x = L"\r";
+ TrimTestBody(x, L"");
+ TrimLeftTestBody(x, L"");
+ TrimRightTestBody(x, L"");
}
TEST(TrimTest, Trim04)
{
- TrimTestBody(L"\t", L"");
+ const std::wstring x = L"\t";
+ TrimTestBody(x, L"");
+ TrimLeftTestBody(x, L"");
+ TrimRightTestBody(x, L"");
}
TEST(TrimTest, Trim05)
{
- TrimTestBody(L"foo", L"foo");
+ const std::wstring x = L"foo";
+ TrimTestBody(x, L"foo");
+ TrimLeftTestBody(x, L"foo");
+ TrimRightTestBody(x, L"foo");
}
TEST(TrimTest, Trim06)
{
- TrimTestBody(L" foo", L"foo");
+ const std::wstring x = L" foo";
+ TrimTestBody(x, L"foo");
+ TrimLeftTestBody(x, L"foo");
+ TrimRightTestBody(x, L" foo");
}
TEST(TrimTest, Trim07)
{
- TrimTestBody(L"\r\nfoo", L"foo");
+ const std::wstring x = L"\r\nfoo";
+ TrimTestBody(x, L"foo");
+ TrimLeftTestBody(x, L"foo");
+ TrimRightTestBody(x, L"\r\nfoo");
}
TEST(TrimTest, Trim08)
{
- TrimTestBody(L"\tfoo", L"foo");
+ const std::wstring x = L"\tfoo";
+ TrimTestBody(x, L"foo");
+ TrimLeftTestBody(x, L"foo");
+ TrimRightTestBody(x, L"\tfoo");
}
TEST(TrimTest, Trim09)
{
- TrimTestBody(L"foo ", L"foo");
+ const std::wstring x = L"foo ";
+ TrimTestBody(x, L"foo");
+ TrimLeftTestBody(x, L"foo ");
+ TrimRightTestBody(x, L"foo");
}
TEST(TrimTest, Trim10)
{
- TrimTestBody(L"foo\r\n", L"foo");
+ const std::wstring x = L"foo\r\n";
+ TrimTestBody(x, L"foo");
+ TrimLeftTestBody(x, L"foo\r\n");
+ TrimRightTestBody(x, L"foo");
}
TEST(TrimTest, Trim11)
{
- TrimTestBody(L"foo\t", L"foo");
+ const std::wstring x = L"foo\t";
+ TrimTestBody(x, L"foo");
+ TrimLeftTestBody(x, L"foo\t");
+ TrimRightTestBody(x, L"foo");
}
TEST(TrimTest, Trim12)
{
- TrimTestBody(L"foo bar", L"foo bar");
+ const std::wstring x = L"foo bar";
+ TrimTestBody(x, L"foo bar");
+ TrimLeftTestBody(x, L"foo bar");
+ TrimRightTestBody(x, L"foo bar");
}
TEST(TrimTest, Trim13)
{
- TrimTestBody(L"foo bar \r\n", L"foo bar");
+ const std::wstring x = L"foo bar \r\n";
+ TrimTestBody(x, L"foo bar");
+ TrimLeftTestBody(x, L"foo bar \r\n");
+ TrimRightTestBody(x, L"foo bar");
}
TEST(TrimTest, Trim14)
{
- TrimTestBody(L" foo bar \r\n", L"foo bar");
+ const std::wstring x = L" foo bar \r\n";
+ TrimTestBody(x, L"foo bar");
+ TrimLeftTestBody(x, L"foo bar \r\n");
+ TrimRightTestBody(x, L" foo bar");
}
+
+TEST(TrimTest, TrimPassesByValue)
+{
+ std::wstring x = L"foo bar "; // not declared 'const', coould alter
+ const std::wstring y = x;
+ ASSERT_EQ(y, x);
sergei 2015/11/30 12:37:54 EXPECT_EQ here and below
Eric 2015/11/30 15:54:08 This statement is largely documentation. It's here
+ std::wstring trimmed = TrimString(x); // expect here pass by value
sergei 2015/11/30 12:37:54 What if one calls it as `TrimString<std::wstring&>
Eric 2015/11/30 15:54:08 If you do that, you get in-place modification. I s
sergei 2015/11/30 16:36:03 Acknowledged. It's another issue, let's leave it.
+ ASSERT_EQ(L"foo bar", trimmed);
+ ASSERT_EQ(y, x); // argument variable not altered
+}
+
+TEST(TrimTest, TrimBindsOnConstArg)
sergei 2015/11/30 12:37:55 If it's an attempt to test whether there is some b
Eric 2015/11/30 15:54:07 It verifies the modification, yes. The real purpos
+{
+ const std::wstring x = L"foo bar "; // declared 'const'
+ const std::wstring y = x;
+ ASSERT_EQ(y, x);
+ std::wstring trimmed = TrimString(x);
+ ASSERT_EQ(L"foo bar", trimmed);
+ ASSERT_EQ(y, x);
+}

Powered by Google App Engine
This is Rietveld