OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "modules/fetch/DataConsumerHandleUtil.h" | 5 #include "modules/fetch/DataConsumerHandleUtil.h" |
6 | 6 |
7 #include "modules/fetch/DataConsumerHandleTestUtil.h" | 7 #include "modules/fetch/DataConsumerHandleTestUtil.h" |
8 #include <memory> | 8 #include <memory> |
9 | 9 |
10 namespace blink { | 10 namespace blink { |
11 | 11 |
12 namespace { | 12 namespace { |
13 | 13 |
14 const WebDataConsumerHandle::Result kShouldWait = | 14 const WebDataConsumerHandle::Result kShouldWait = |
15 WebDataConsumerHandle::ShouldWait; | 15 WebDataConsumerHandle::ShouldWait; |
16 const WebDataConsumerHandle::Result kDone = WebDataConsumerHandle::Done; | |
17 const WebDataConsumerHandle::Result kUnexpectedError = | 16 const WebDataConsumerHandle::Result kUnexpectedError = |
18 WebDataConsumerHandle::UnexpectedError; | 17 WebDataConsumerHandle::UnexpectedError; |
19 const WebDataConsumerHandle::Flags kNone = WebDataConsumerHandle::FlagNone; | 18 const WebDataConsumerHandle::Flags kNone = WebDataConsumerHandle::FlagNone; |
20 | 19 |
21 TEST(DataConsumerHandleUtilTest, CreateWaitingHandle) { | 20 TEST(DataConsumerHandleUtilTest, CreateWaitingHandle) { |
22 char buffer[20]; | 21 char buffer[20]; |
23 const void* p = nullptr; | 22 const void* p = nullptr; |
24 size_t size = 0; | 23 size_t size = 0; |
25 std::unique_ptr<WebDataConsumerHandle> handle = | 24 std::unique_ptr<WebDataConsumerHandle> handle = |
26 createWaitingDataConsumerHandle(); | 25 createWaitingDataConsumerHandle(); |
27 std::unique_ptr<WebDataConsumerHandle::Reader> reader = | 26 std::unique_ptr<WebDataConsumerHandle::Reader> reader = |
28 handle->obtainReader(nullptr); | 27 handle->obtainReader(nullptr); |
29 | 28 |
30 EXPECT_EQ(kShouldWait, reader->read(buffer, sizeof(buffer), kNone, &size)); | 29 EXPECT_EQ(kShouldWait, reader->read(buffer, sizeof(buffer), kNone, &size)); |
31 EXPECT_EQ(kShouldWait, reader->beginRead(&p, kNone, &size)); | 30 EXPECT_EQ(kShouldWait, reader->beginRead(&p, kNone, &size)); |
32 EXPECT_EQ(kUnexpectedError, reader->endRead(99)); | 31 EXPECT_EQ(kUnexpectedError, reader->endRead(99)); |
33 } | 32 } |
34 | 33 |
35 TEST(DataConsumerHandleUtilTest, WaitingHandleNoNotification) { | 34 TEST(DataConsumerHandleUtilTest, WaitingHandleNoNotification) { |
36 RefPtr<DataConsumerHandleTestUtil::ThreadingHandleNoNotificationTest> test = | 35 RefPtr<DataConsumerHandleTestUtil::ThreadingHandleNoNotificationTest> test = |
37 DataConsumerHandleTestUtil::ThreadingHandleNoNotificationTest::create(); | 36 DataConsumerHandleTestUtil::ThreadingHandleNoNotificationTest::create(); |
38 // Test this function doesn't crash. | 37 // Test this function doesn't crash. |
39 test->run(createWaitingDataConsumerHandle()); | 38 test->run(createWaitingDataConsumerHandle()); |
40 } | 39 } |
41 | 40 |
42 TEST(DataConsumerHandleUtilTest, CreateDoneHandle) { | |
43 char buffer[20]; | |
44 const void* p = nullptr; | |
45 size_t size = 0; | |
46 std::unique_ptr<WebDataConsumerHandle> handle = | |
47 createDoneDataConsumerHandle(); | |
48 std::unique_ptr<WebDataConsumerHandle::Reader> reader = | |
49 handle->obtainReader(nullptr); | |
50 | |
51 EXPECT_EQ(kDone, reader->read(buffer, sizeof(buffer), kNone, &size)); | |
52 EXPECT_EQ(kDone, reader->beginRead(&p, kNone, &size)); | |
53 EXPECT_EQ(kUnexpectedError, reader->endRead(99)); | |
54 } | |
55 | |
56 TEST(DataConsumerHandleUtilTest, DoneHandleNotification) { | |
57 RefPtr<DataConsumerHandleTestUtil::ThreadingHandleNotificationTest> test = | |
58 DataConsumerHandleTestUtil::ThreadingHandleNotificationTest::create(); | |
59 // Test this function returns. | |
60 test->run(createDoneDataConsumerHandle()); | |
61 } | |
62 | |
63 TEST(DataConsumerHandleUtilTest, DoneHandleNoNotification) { | |
64 RefPtr<DataConsumerHandleTestUtil::ThreadingHandleNoNotificationTest> test = | |
65 DataConsumerHandleTestUtil::ThreadingHandleNoNotificationTest::create(); | |
66 // Test this function doesn't crash. | |
67 test->run(createDoneDataConsumerHandle()); | |
68 } | |
69 | |
70 TEST(DataConsumerHandleUtilTest, CreateUnexpectedErrorHandle) { | |
71 char buffer[20]; | |
72 const void* p = nullptr; | |
73 size_t size = 0; | |
74 std::unique_ptr<WebDataConsumerHandle> handle = | |
75 createUnexpectedErrorDataConsumerHandle(); | |
76 std::unique_ptr<WebDataConsumerHandle::Reader> reader = | |
77 handle->obtainReader(nullptr); | |
78 | |
79 EXPECT_EQ(kUnexpectedError, | |
80 reader->read(buffer, sizeof(buffer), kNone, &size)); | |
81 EXPECT_EQ(kUnexpectedError, reader->beginRead(&p, kNone, &size)); | |
82 EXPECT_EQ(kUnexpectedError, reader->endRead(99)); | |
83 } | |
84 | |
85 TEST(DataConsumerHandleUtilTest, UnexpectedErrorHandleNotification) { | |
86 RefPtr<DataConsumerHandleTestUtil::ThreadingHandleNotificationTest> test = | |
87 DataConsumerHandleTestUtil::ThreadingHandleNotificationTest::create(); | |
88 // Test this function returns. | |
89 test->run(createUnexpectedErrorDataConsumerHandle()); | |
90 } | |
91 | |
92 TEST(DataConsumerHandleUtilTest, UnexpectedErrorHandleNoNotification) { | |
93 RefPtr<DataConsumerHandleTestUtil::ThreadingHandleNoNotificationTest> test = | |
94 DataConsumerHandleTestUtil::ThreadingHandleNoNotificationTest::create(); | |
95 // Test this function doesn't crash. | |
96 test->run(createUnexpectedErrorDataConsumerHandle()); | |
97 } | |
98 | |
99 } // namespace | 41 } // namespace |
100 | 42 |
101 } // namespace blink | 43 } // namespace blink |
OLD | NEW |