Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(680)

Side by Side Diff: android_webview/browser/input_stream_unittest.cc

Issue 2889193004: [WebView] Replace AwContentsIoThreadClient, InputStream and AwWebResourceResponse (Closed)
Patch Set: fix test crash Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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 <memory> 5 #include <memory>
6 6
7 #include "android_webview/browser/input_stream_impl.h" 7 #include "android_webview/browser/input_stream.h"
8 #include "base/android/jni_android.h" 8 #include "base/android/jni_android.h"
9 #include "base/android/scoped_java_ref.h" 9 #include "base/android/scoped_java_ref.h"
10 #include "jni/InputStreamUnittest_jni.h" 10 #include "jni/InputStreamUnittest_jni.h"
11 #include "net/base/io_buffer.h" 11 #include "net/base/io_buffer.h"
12 #include "net/base/net_errors.h" 12 #include "net/base/net_errors.h"
13 #include "net/http/http_byte_range.h" 13 #include "net/http/http_byte_range.h"
14 #include "testing/gmock/include/gmock/gmock.h" 14 #include "testing/gmock/include/gmock/gmock.h"
15 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
16 16
17 using android_webview::InputStream; 17 using android_webview::InputStream;
18 using android_webview::InputStreamImpl;
19 using base::android::AttachCurrentThread; 18 using base::android::AttachCurrentThread;
20 using base::android::ScopedJavaLocalRef; 19 using base::android::ScopedJavaLocalRef;
21 using net::IOBuffer; 20 using net::IOBuffer;
22 using testing::DoAll; 21 using testing::DoAll;
23 using testing::Ge; 22 using testing::Ge;
24 using testing::InSequence; 23 using testing::InSequence;
25 using testing::Lt; 24 using testing::Lt;
26 using testing::Ne; 25 using testing::Ne;
27 using testing::NotNull; 26 using testing::NotNull;
28 using testing::Return; 27 using testing::Return;
(...skipping 12 matching lines...) Expand all
41 } 40 }
42 41
43 scoped_refptr<IOBuffer> DoReadCountedStreamTest(int stream_size, 42 scoped_refptr<IOBuffer> DoReadCountedStreamTest(int stream_size,
44 int bytes_requested, 43 int bytes_requested,
45 int* bytes_read) { 44 int* bytes_read) {
46 ScopedJavaLocalRef<jobject> counting_jstream = 45 ScopedJavaLocalRef<jobject> counting_jstream =
47 Java_InputStreamUnittest_getCountingStream(env_, stream_size); 46 Java_InputStreamUnittest_getCountingStream(env_, stream_size);
48 EXPECT_FALSE(counting_jstream.is_null()); 47 EXPECT_FALSE(counting_jstream.is_null());
49 48
50 std::unique_ptr<InputStream> input_stream( 49 std::unique_ptr<InputStream> input_stream(
51 new InputStreamImpl(counting_jstream)); 50 new InputStream(counting_jstream));
52 scoped_refptr<IOBuffer> buffer = new IOBuffer(bytes_requested); 51 scoped_refptr<IOBuffer> buffer = new IOBuffer(bytes_requested);
53 52
54 EXPECT_TRUE(input_stream->Read(buffer.get(), bytes_requested, bytes_read)); 53 EXPECT_TRUE(input_stream->Read(buffer.get(), bytes_requested, bytes_read));
55 return buffer; 54 return buffer;
56 } 55 }
57 56
58 JNIEnv* env_; 57 JNIEnv* env_;
59 }; 58 };
60 59
61 TEST_F(InputStreamTest, ReadEmptyStream) { 60 TEST_F(InputStreamTest, ReadEmptyStream) {
62 ScopedJavaLocalRef<jobject> empty_jstream = 61 ScopedJavaLocalRef<jobject> empty_jstream =
63 Java_InputStreamUnittest_getEmptyStream(env_); 62 Java_InputStreamUnittest_getEmptyStream(env_);
64 EXPECT_FALSE(empty_jstream.is_null()); 63 EXPECT_FALSE(empty_jstream.is_null());
65 64
66 std::unique_ptr<InputStream> input_stream(new InputStreamImpl(empty_jstream)); 65 std::unique_ptr<InputStream> input_stream(new InputStream(empty_jstream));
67 const int bytes_requested = 10; 66 const int bytes_requested = 10;
68 int bytes_read = 0; 67 int bytes_read = 0;
69 scoped_refptr<IOBuffer> buffer = new IOBuffer(bytes_requested); 68 scoped_refptr<IOBuffer> buffer = new IOBuffer(bytes_requested);
70 69
71 EXPECT_TRUE(input_stream->Read(buffer.get(), bytes_requested, &bytes_read)); 70 EXPECT_TRUE(input_stream->Read(buffer.get(), bytes_requested, &bytes_read));
72 EXPECT_EQ(0, bytes_read); 71 EXPECT_EQ(0, bytes_read);
73 } 72 }
74 73
75 TEST_F(InputStreamTest, ReadStreamPartial) { 74 TEST_F(InputStreamTest, ReadStreamPartial) {
76 const int bytes_requested = 128; 75 const int bytes_requested = 128;
77 int bytes_read = 0; 76 int bytes_read = 0;
78 DoReadCountedStreamTest(bytes_requested * 2, bytes_requested, &bytes_read); 77 DoReadCountedStreamTest(bytes_requested * 2, bytes_requested, &bytes_read);
79 EXPECT_EQ(bytes_requested, bytes_read); 78 EXPECT_EQ(bytes_requested, bytes_read);
80 } 79 }
81 80
82 TEST_F(InputStreamTest, ReadStreamCompletely) { 81 TEST_F(InputStreamTest, ReadStreamCompletely) {
83 const int bytes_requested = 42; 82 const int bytes_requested = 42;
84 int bytes_read = 0; 83 int bytes_read = 0;
85 DoReadCountedStreamTest(bytes_requested, bytes_requested, &bytes_read); 84 DoReadCountedStreamTest(bytes_requested, bytes_requested, &bytes_read);
86 EXPECT_EQ(bytes_requested, bytes_read); 85 EXPECT_EQ(bytes_requested, bytes_read);
87 } 86 }
88 87
89 TEST_F(InputStreamTest, TryReadMoreThanBuffer) { 88 TEST_F(InputStreamTest, TryReadMoreThanBuffer) {
90 const int buffer_size = 3 * InputStreamImpl::kBufferSize; 89 const int buffer_size = 3 * InputStream::kBufferSize;
91 int bytes_read = 0; 90 int bytes_read = 0;
92 DoReadCountedStreamTest(buffer_size, buffer_size * 2, &bytes_read); 91 DoReadCountedStreamTest(buffer_size, buffer_size * 2, &bytes_read);
93 EXPECT_EQ(buffer_size, bytes_read); 92 EXPECT_EQ(buffer_size, bytes_read);
94 } 93 }
95 94
96 TEST_F(InputStreamTest, CheckContentsReadCorrectly) { 95 TEST_F(InputStreamTest, CheckContentsReadCorrectly) {
97 const int bytes_requested = 256; 96 const int bytes_requested = 256;
98 int bytes_read = 0; 97 int bytes_read = 0;
99 scoped_refptr<IOBuffer> buffer = 98 scoped_refptr<IOBuffer> buffer =
100 DoReadCountedStreamTest(bytes_requested, bytes_requested, &bytes_read); 99 DoReadCountedStreamTest(bytes_requested, bytes_requested, &bytes_read);
101 EXPECT_EQ(bytes_requested, bytes_read); 100 EXPECT_EQ(bytes_requested, bytes_read);
102 for (int i = 0; i < bytes_requested; ++i) { 101 for (int i = 0; i < bytes_requested; ++i) {
103 EXPECT_EQ(i, (unsigned char)buffer->data()[i]); 102 EXPECT_EQ(i, (unsigned char)buffer->data()[i]);
104 } 103 }
105 } 104 }
106 105
107 TEST_F(InputStreamTest, ReadLargeStreamPartial) { 106 TEST_F(InputStreamTest, ReadLargeStreamPartial) {
108 const int bytes_requested = 3 * InputStreamImpl::kBufferSize; 107 const int bytes_requested = 3 * InputStream::kBufferSize;
109 int bytes_read = 0; 108 int bytes_read = 0;
110 DoReadCountedStreamTest(bytes_requested + 32, bytes_requested, &bytes_read); 109 DoReadCountedStreamTest(bytes_requested + 32, bytes_requested, &bytes_read);
111 EXPECT_EQ(bytes_requested, bytes_read); 110 EXPECT_EQ(bytes_requested, bytes_read);
112 } 111 }
113 112
114 TEST_F(InputStreamTest, ReadLargeStreamCompletely) { 113 TEST_F(InputStreamTest, ReadLargeStreamCompletely) {
115 const int bytes_requested = 3 * InputStreamImpl::kBufferSize; 114 const int bytes_requested = 3 * InputStream::kBufferSize;
116 int bytes_read = 0; 115 int bytes_read = 0;
117 DoReadCountedStreamTest(bytes_requested, bytes_requested, &bytes_read); 116 DoReadCountedStreamTest(bytes_requested, bytes_requested, &bytes_read);
118 EXPECT_EQ(bytes_requested, bytes_read); 117 EXPECT_EQ(bytes_requested, bytes_read);
119 } 118 }
120 119
121 TEST_F(InputStreamTest, DoesNotCrashWhenExceptionThrown) { 120 TEST_F(InputStreamTest, DoesNotCrashWhenExceptionThrown) {
122 ScopedJavaLocalRef<jobject> throw_jstream = 121 ScopedJavaLocalRef<jobject> throw_jstream =
123 Java_InputStreamUnittest_getThrowingStream(env_); 122 Java_InputStreamUnittest_getThrowingStream(env_);
124 EXPECT_FALSE(throw_jstream.is_null()); 123 EXPECT_FALSE(throw_jstream.is_null());
125 124
126 std::unique_ptr<InputStream> input_stream(new InputStreamImpl(throw_jstream)); 125 std::unique_ptr<InputStream> input_stream(new InputStream(throw_jstream));
127 126
128 int64_t bytes_skipped; 127 int64_t bytes_skipped;
129 EXPECT_FALSE(input_stream->Skip(10, &bytes_skipped)); 128 EXPECT_FALSE(input_stream->Skip(10, &bytes_skipped));
130 129
131 int bytes_available; 130 int bytes_available;
132 EXPECT_FALSE(input_stream->BytesAvailable(&bytes_available)); 131 EXPECT_FALSE(input_stream->BytesAvailable(&bytes_available));
133 132
134 const int bytes_requested = 10; 133 const int bytes_requested = 10;
135 int bytes_read = 0; 134 int bytes_read = 0;
136 scoped_refptr<IOBuffer> buffer = new IOBuffer(bytes_requested); 135 scoped_refptr<IOBuffer> buffer = new IOBuffer(bytes_requested);
137 EXPECT_FALSE(input_stream->Read(buffer.get(), bytes_requested, &bytes_read)); 136 EXPECT_FALSE(input_stream->Read(buffer.get(), bytes_requested, &bytes_read));
138 EXPECT_EQ(0, bytes_read); 137 EXPECT_EQ(0, bytes_read);
139 138
140 // This closes the stream. 139 // This closes the stream.
141 input_stream.reset(NULL); 140 input_stream.reset(NULL);
142 } 141 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698