| OLD | NEW |
| (Empty) | |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include "remoting/host/clipboard_util.h" |
| 6 #include "testing/gtest/include/gtest/gtest.h" |
| 7 |
| 8 namespace remoting { |
| 9 |
| 10 TEST(ClipboardUtilTest, ReplaceLfByCrLf) { |
| 11 EXPECT_EQ("ab", ClipboardUtil::ReplaceLfByCrLf("ab")); |
| 12 EXPECT_EQ("\r\nab", ClipboardUtil::ReplaceLfByCrLf("\nab")); |
| 13 EXPECT_EQ("\r\nab\r\n", ClipboardUtil::ReplaceLfByCrLf("\nab\n")); |
| 14 EXPECT_EQ("\r\nab\r\ncd", ClipboardUtil::ReplaceLfByCrLf("\nab\ncd")); |
| 15 EXPECT_EQ("\r\nab\r\ncd\r\n", ClipboardUtil::ReplaceLfByCrLf("\nab\ncd\n")); |
| 16 EXPECT_EQ("\r\n\r\nab\r\n\r\ncd\r\n\r\n", |
| 17 ClipboardUtil::ReplaceLfByCrLf("\n\nab\n\ncd\n\n")); |
| 18 } |
| 19 |
| 20 TEST(ClipboardUtilTest, ReplaceLfByCrLfSpeed) { |
| 21 int kLineSize = 128; |
| 22 std::string line(kLineSize, 'a'); |
| 23 line[kLineSize - 1] = '\n'; |
| 24 // Make a 10M string. |
| 25 int kLineNum = 10 * 1024 * 1024 / kLineSize; |
| 26 std::string buffer; |
| 27 buffer.resize(kLineNum * kLineSize); |
| 28 for (int i = 0; i < kLineNum; ++i) { |
| 29 memcpy(&buffer[i * kLineSize], &line[0], kLineSize); |
| 30 } |
| 31 // Convert the string. |
| 32 buffer = ClipboardUtil::ReplaceLfByCrLf(buffer); |
| 33 // Check the converted string. |
| 34 EXPECT_EQ((kLineSize + 1) * kLineNum, buffer.size()); |
| 35 const char* p = &buffer[0]; |
| 36 for (int i = 0; i < kLineNum; ++i) { |
| 37 EXPECT_EQ(0, memcmp(&line[0], p, kLineSize - 1)); |
| 38 p += kLineSize - 1; |
| 39 EXPECT_EQ('\r', *p++); |
| 40 EXPECT_EQ('\n', *p++); |
| 41 } |
| 42 } |
| 43 |
| 44 TEST(ClipboardUtilTest, ReplaceCrLfByLf) { |
| 45 EXPECT_EQ("ab", ClipboardUtil::ReplaceCrLfByLf("ab")); |
| 46 EXPECT_EQ("\nab", ClipboardUtil::ReplaceCrLfByLf("\r\nab")); |
| 47 EXPECT_EQ("\nab\n", ClipboardUtil::ReplaceCrLfByLf("\r\nab\r\n")); |
| 48 EXPECT_EQ("\nab\ncd", ClipboardUtil::ReplaceCrLfByLf("\r\nab\r\ncd")); |
| 49 EXPECT_EQ("\nab\ncd\n", ClipboardUtil::ReplaceCrLfByLf("\r\nab\r\ncd\n")); |
| 50 EXPECT_EQ("\n\nab\n\ncd\n\n", |
| 51 ClipboardUtil::ReplaceCrLfByLf("\r\n\r\nab\r\n\r\ncd\r\n\r\n")); |
| 52 EXPECT_EQ("\rab\rcd\r", ClipboardUtil::ReplaceCrLfByLf("\rab\rcd\r")); |
| 53 } |
| 54 |
| 55 TEST(ClipboardUtilTest, ReplaceCrLfByLfSpeed) { |
| 56 int kLineSize = 128; |
| 57 std::string line(kLineSize, 'a'); |
| 58 line[kLineSize - 2] = '\r'; |
| 59 line[kLineSize - 1] = '\n'; |
| 60 // Make a 10M string. |
| 61 int kLineNum = 10 * 1024 * 1024 / kLineSize; |
| 62 std::string buffer; |
| 63 buffer.resize(kLineNum * kLineSize); |
| 64 for (int i = 0; i < kLineNum; ++i) { |
| 65 memcpy(&buffer[i * kLineSize], &line[0], kLineSize); |
| 66 } |
| 67 // Convert the string. |
| 68 buffer = ClipboardUtil::ReplaceCrLfByLf(buffer); |
| 69 // Check the converted string. |
| 70 EXPECT_EQ((kLineSize - 1) * kLineNum, buffer.size()); |
| 71 const char* p = &buffer[0]; |
| 72 for (int i = 0; i < kLineNum; ++i) { |
| 73 EXPECT_EQ(0, memcmp(&line[0], p, kLineSize - 2)); |
| 74 p += kLineSize - 2; |
| 75 EXPECT_EQ('\n', *p++); |
| 76 } |
| 77 } |
| 78 |
| 79 } // namespace remoting |
| OLD | NEW |