OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011 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 #ifndef NET_FTP_FTP_DIRECTORY_LISTING_PARSER_UNITTEST_H_ | |
6 #define NET_FTP_FTP_DIRECTORY_LISTING_PARSER_UNITTEST_H_ | |
7 | |
8 #include <vector> | |
9 | |
10 #include "base/strings/utf_string_conversions.h" | |
11 #include "net/ftp/ftp_directory_listing_parser.h" | |
12 #include "testing/gtest/include/gtest/gtest.h" | |
13 | |
14 namespace net { | |
15 | |
16 class FtpDirectoryListingParserTest : public testing::Test { | |
17 public: | |
18 struct SingleLineTestData { | |
19 const char* input; | |
20 FtpDirectoryListingEntry::Type type; | |
21 const char* filename; | |
22 int64 size; | |
23 int year; | |
24 int month; | |
25 int day_of_month; | |
26 int hour; | |
27 int minute; | |
28 }; | |
29 | |
30 protected: | |
31 FtpDirectoryListingParserTest() {} | |
32 | |
33 std::vector<base::string16> GetSingleLineTestCase(const std::string& text) { | |
34 std::vector<base::string16> lines; | |
35 lines.push_back(base::UTF8ToUTF16(text)); | |
36 return lines; | |
37 } | |
38 | |
39 void VerifySingleLineTestCase( | |
40 const SingleLineTestData& test_case, | |
41 const std::vector<FtpDirectoryListingEntry>& entries) { | |
42 ASSERT_FALSE(entries.empty()); | |
43 | |
44 FtpDirectoryListingEntry entry = entries[0]; | |
45 EXPECT_EQ(test_case.type, entry.type); | |
46 EXPECT_EQ(base::UTF8ToUTF16(test_case.filename), entry.name); | |
47 EXPECT_EQ(test_case.size, entry.size); | |
48 | |
49 base::Time::Exploded time_exploded; | |
50 entry.last_modified.LocalExplode(&time_exploded); | |
51 | |
52 // Only test members displayed on the directory listing. | |
53 EXPECT_EQ(test_case.year, time_exploded.year); | |
54 EXPECT_EQ(test_case.month, time_exploded.month); | |
55 EXPECT_EQ(test_case.day_of_month, time_exploded.day_of_month); | |
56 EXPECT_EQ(test_case.hour, time_exploded.hour); | |
57 EXPECT_EQ(test_case.minute, time_exploded.minute); | |
58 | |
59 EXPECT_EQ(1U, entries.size()); | |
60 } | |
61 | |
62 base::Time GetMockCurrentTime() { | |
63 base::Time::Exploded mock_current_time_exploded = { 0 }; | |
64 mock_current_time_exploded.year = 1994; | |
65 mock_current_time_exploded.month = 11; | |
66 mock_current_time_exploded.day_of_month = 15; | |
67 mock_current_time_exploded.hour = 12; | |
68 mock_current_time_exploded.minute = 45; | |
69 return base::Time::FromLocalExploded(mock_current_time_exploded); | |
70 } | |
71 }; | |
72 | |
73 } // namespace net | |
74 | |
75 #endif // NET_FTP_FTP_DIRECTORY_LISTING_PARSER_UNITTEST_H_ | |
76 | |
OLD | NEW |