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

Side by Side Diff: content/browser/streams/stream_unittest.cc

Issue 759823003: Introduce StreamRegistry::NotifyReaderAbortedBeforeRegistration() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: AbortPendingStream Created 6 years 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
« no previous file with comments | « content/browser/streams/stream_registry.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "base/message_loop/message_loop.h" 5 #include "base/message_loop/message_loop.h"
6 #include "base/test/test_simple_task_runner.h" 6 #include "base/test/test_simple_task_runner.h"
7 #include "content/browser/streams/stream.h" 7 #include "content/browser/streams/stream.h"
8 #include "content/browser/streams/stream_read_observer.h" 8 #include "content/browser/streams/stream_read_observer.h"
9 #include "content/browser/streams/stream_register_observer.h" 9 #include "content/browser/streams/stream_register_observer.h"
10 #include "content/browser/streams/stream_registry.h" 10 #include "content/browser/streams/stream_registry.h"
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 } 100 }
101 101
102 void OnSpaceAvailable(Stream* stream) override {} 102 void OnSpaceAvailable(Stream* stream) override {}
103 103
104 void OnClose(Stream* stream) override {} 104 void OnClose(Stream* stream) override {}
105 }; 105 };
106 106
107 class TestStreamObserver : public StreamRegisterObserver { 107 class TestStreamObserver : public StreamRegisterObserver {
108 public: 108 public:
109 TestStreamObserver(const GURL& url, StreamRegistry* registry) 109 TestStreamObserver(const GURL& url, StreamRegistry* registry)
110 : url_(url), registry_(registry), registered_(false), stream_(NULL) { 110 : url_(url), registry_(registry), registered_(false), stream_(nullptr) {
111 registry->SetRegisterObserver(url, this); 111 registry->SetRegisterObserver(url, this);
112 } 112 }
113 ~TestStreamObserver() override { registry_->RemoveRegisterObserver(url_); } 113 ~TestStreamObserver() override { registry_->RemoveRegisterObserver(url_); }
114 virtual void OnStreamRegistered(Stream* stream) override { 114 virtual void OnStreamRegistered(Stream* stream) override {
115 registered_ = true; 115 registered_ = true;
116 stream_ = stream; 116 stream_ = stream;
117 } 117 }
118 bool registered() const { return registered_; } 118 bool registered() const { return registered_; }
119 Stream* stream() const { return stream_; } 119 Stream* stream() const { return stream_; }
120 120
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 const int kBufferSize = 1000000; 305 const int kBufferSize = 1000000;
306 scoped_refptr<net::IOBuffer> buffer(NewIOBuffer(kBufferSize)); 306 scoped_refptr<net::IOBuffer> buffer(NewIOBuffer(kBufferSize));
307 writer1.Write(stream1.get(), buffer, kBufferSize); 307 writer1.Write(stream1.get(), buffer, kBufferSize);
308 // Make transfer happen. 308 // Make transfer happen.
309 base::MessageLoop::current()->RunUntilIdle(); 309 base::MessageLoop::current()->RunUntilIdle();
310 310
311 writer2.Write(stream2.get(), buffer, kBufferSize); 311 writer2.Write(stream2.get(), buffer, kBufferSize);
312 312
313 // Written data (1000000 * 2) exceeded limit (1500000). |stream2| should be 313 // Written data (1000000 * 2) exceeded limit (1500000). |stream2| should be
314 // unregistered with |registry_|. 314 // unregistered with |registry_|.
315 EXPECT_EQ(NULL, registry_->GetStream(url2).get()); 315 EXPECT_EQ(nullptr, registry_->GetStream(url2).get());
316 316
317 writer1.Write(stream1.get(), buffer, kMaxMemoryUsage - kBufferSize); 317 writer1.Write(stream1.get(), buffer, kMaxMemoryUsage - kBufferSize);
318 // Should be accepted since stream2 is unregistered and the new data is not 318 // Should be accepted since stream2 is unregistered and the new data is not
319 // so big to exceed the limit. 319 // so big to exceed the limit.
320 EXPECT_FALSE(registry_->GetStream(url1).get() == NULL); 320 EXPECT_FALSE(registry_->GetStream(url1).get() == nullptr);
321 } 321 }
322 322
323 TEST_F(StreamTest, UnderMemoryUsageLimit) { 323 TEST_F(StreamTest, UnderMemoryUsageLimit) {
324 TestStreamWriter writer; 324 TestStreamWriter writer;
325 TestStreamReader reader; 325 TestStreamReader reader;
326 326
327 GURL url("blob://stream"); 327 GURL url("blob://stream");
328 scoped_refptr<Stream> stream(new Stream(registry_.get(), &writer, url)); 328 scoped_refptr<Stream> stream(new Stream(registry_.get(), &writer, url));
329 EXPECT_TRUE(stream->SetReadObserver(&reader)); 329 EXPECT_TRUE(stream->SetReadObserver(&reader));
330 330
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 363
364 stream->Flush(); 364 stream->Flush();
365 365
366 // Run loop to make |reader| consume the data. 366 // Run loop to make |reader| consume the data.
367 base::MessageLoop::current()->RunUntilIdle(); 367 base::MessageLoop::current()->RunUntilIdle();
368 EXPECT_EQ(kBufferSize, reader.buffer()->capacity()); 368 EXPECT_EQ(kBufferSize, reader.buffer()->capacity());
369 369
370 EXPECT_EQ(stream.get(), registry_->GetStream(url).get()); 370 EXPECT_EQ(stream.get(), registry_->GetStream(url).get());
371 } 371 }
372 372
373 TEST_F(StreamTest, AbortPendingStream) {
374 TestStreamWriter writer;
375
376 GURL url("blob://stream");
377 registry_->AbortPendingStream(url);
378 scoped_refptr<Stream> stream1(new Stream(registry_.get(), &writer, url));
379 ASSERT_EQ(nullptr, registry_->GetStream(url).get());
380 }
381
373 } // namespace content 382 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/streams/stream_registry.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698