| 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 |