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

Unified Diff: webkit/glue/media/buffered_data_source_unittest.cc

Issue 269002: Report stalled event correctly for <video> (Closed)
Patch Set: comments Created 11 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: webkit/glue/media/buffered_data_source_unittest.cc
diff --git a/webkit/glue/media/buffered_data_source_unittest.cc b/webkit/glue/media/buffered_data_source_unittest.cc
index c05c9b9baffe2f209fa908c3978ffddcae154c0e..53915f18e9cf0c77dd299637ee08fb5f3bd08c2b 100644
--- a/webkit/glue/media/buffered_data_source_unittest.cc
+++ b/webkit/glue/media/buffered_data_source_unittest.cc
@@ -82,8 +82,9 @@ class BufferedResourceLoaderTest : public testing::Test {
CreateBridge(gurl_, _, first_position_, last_position_))
.WillOnce(Return(bridge_.get()));
EXPECT_CALL(*bridge_, Start(loader_.get()));
- loader_->Start(NewCallback(this,
- &BufferedResourceLoaderTest::StartCallback));
+ loader_->Start(
+ NewCallback(this, &BufferedResourceLoaderTest::StartCallback),
+ NewCallback(this, &BufferedResourceLoaderTest::NetworkCallback));
}
void FullResponse(int64 instance_size) {
@@ -134,6 +135,7 @@ class BufferedResourceLoaderTest : public testing::Test {
// Helper method to write to |loader_| from |data_|.
void WriteLoader(int position, int size) {
+ EXPECT_CALL(*this, NetworkCallback());
loader_->OnReceivedData(reinterpret_cast<char*>(data_ + position), size);
}
@@ -150,6 +152,7 @@ class BufferedResourceLoaderTest : public testing::Test {
MOCK_METHOD1(StartCallback, void(int error));
MOCK_METHOD1(ReadCallback, void(int error));
+ MOCK_METHOD0(NetworkCallback, void());
protected:
GURL gurl_;
@@ -282,6 +285,7 @@ TEST_F(BufferedResourceLoaderTest, BufferAndRead) {
ReadLoader(9, 10, buffer);
// Response has completed.
+ EXPECT_CALL(*this, NetworkCallback());
EXPECT_CALL(*bridge_, OnDestroy())
.WillOnce(Invoke(this, &BufferedResourceLoaderTest::ReleaseBridge));
URLRequestStatus status;
@@ -327,6 +331,7 @@ TEST_F(BufferedResourceLoaderTest, ReadOutsideBuffer) {
ReadLoader(25, 10, buffer);
EXPECT_CALL(*this, ReadCallback(5));
+ EXPECT_CALL(*this, NetworkCallback());
EXPECT_CALL(*bridge_, OnDestroy())
.WillOnce(Invoke(this, &BufferedResourceLoaderTest::ReleaseBridge));
URLRequestStatus status;
@@ -344,6 +349,7 @@ TEST_F(BufferedResourceLoaderTest, RequestFailedWhenRead) {
ReadLoader(10, 10, buffer);
EXPECT_CALL(*this, ReadCallback(net::ERR_FAILED));
+ EXPECT_CALL(*this, NetworkCallback());
EXPECT_CALL(*bridge_, OnDestroy())
.WillOnce(Invoke(this, &BufferedResourceLoaderTest::ReleaseBridge));
URLRequestStatus status;
@@ -358,20 +364,24 @@ class MockBufferedResourceLoader : public BufferedResourceLoader {
MockBufferedResourceLoader() : BufferedResourceLoader() {
}
- MOCK_METHOD1(Start, void(net::CompletionCallback* read_callback));
+ MOCK_METHOD2(Start, void(net::CompletionCallback* read_callback,
+ NetworkEventCallback* network_callback));
MOCK_METHOD0(Stop, void());
MOCK_METHOD4(Read, void(int64 position, int read_size, uint8* buffer,
net::CompletionCallback* callback));
MOCK_METHOD0(content_length, int64());
MOCK_METHOD0(instance_size, int64());
MOCK_METHOD0(partial_response, bool());
+ MOCK_METHOD0(network_activity, bool());
+ MOCK_METHOD0(GetBufferedFirstBytePosition, int64());
+ MOCK_METHOD0(GetBufferedLastBytePosition, int64());
private:
DISALLOW_COPY_AND_ASSIGN(MockBufferedResourceLoader);
};
// A mock BufferedDataSource to inject mock BufferedResourceLoader through
-// CreateLoader() method.
+// CreateResourceLoader() method.
class MockBufferedDataSource : public BufferedDataSource {
public:
// Static methods for creating this class.
@@ -390,13 +400,12 @@ class MockBufferedDataSource : public BufferedDataSource {
return base::TimeDelta::FromMilliseconds(100);
}
- MOCK_METHOD2(CreateLoader, BufferedResourceLoader*(int64 first_position,
- int64 last_position));
+ MOCK_METHOD2(CreateResourceLoader, BufferedResourceLoader*(
+ int64 first_position, int64 last_position));
protected:
MockBufferedDataSource(
- MessageLoop* message_loop,
- MediaResourceLoaderBridgeFactory* factory)
+ MessageLoop* message_loop, MediaResourceLoaderBridgeFactory* factory)
: BufferedDataSource(message_loop, factory) {
}
@@ -459,11 +468,11 @@ class BufferedDataSourceTest : public testing::Test {
bool loaded = networkState == LOADED;
{
InSequence s;
- EXPECT_CALL(*data_source_, CreateLoader(_, _))
+ EXPECT_CALL(*data_source_, CreateResourceLoader(_, _))
.WillOnce(Return(loader_.get()));
// The initial response loader will be started.
- EXPECT_CALL(*loader_, Start(NotNull()))
+ EXPECT_CALL(*loader_, Start(NotNull(), NotNull()))
.WillOnce(
DoAll(Assign(&error_, error),
Invoke(this,
@@ -471,18 +480,21 @@ class BufferedDataSourceTest : public testing::Test {
}
StrictMock<media::MockFilterCallback> callback;
+ EXPECT_CALL(*loader_, instance_size())
+ .WillRepeatedly(Return(instance_size));
+ EXPECT_CALL(*loader_, partial_response())
+ .WillRepeatedly(Return(partial_response));
if (error == net::OK) {
// Expected loaded or not.
EXPECT_CALL(host_, SetLoaded(loaded));
- EXPECT_CALL(*loader_, instance_size())
- .WillRepeatedly(Return(instance_size));
- EXPECT_CALL(*loader_, partial_response())
- .WillRepeatedly(Return(partial_response));
// TODO(hclam): The condition for streaming needs to be adjusted.
if (instance_size != -1 && (loaded || partial_response)) {
EXPECT_CALL(host_, SetTotalBytes(instance_size));
- EXPECT_CALL(host_, SetBufferedBytes(instance_size));
+ if (loaded)
+ EXPECT_CALL(host_, SetBufferedBytes(instance_size));
+ else
+ EXPECT_CALL(host_, SetBufferedBytes(0));
} else {
EXPECT_CALL(host_, SetStreaming(true));
}
@@ -526,9 +538,13 @@ class BufferedDataSourceTest : public testing::Test {
bridge_factory_.release();
}
- void InvokeStartCallback(net::CompletionCallback* callback) {
+ void InvokeStartCallback(
+ net::CompletionCallback* callback,
+ BufferedResourceLoader::NetworkEventCallback* network_callback) {
callback->RunWithParams(Tuple1<int>(error_));
delete callback;
+ // TODO(hclam): Save this callback.
+ delete network_callback;
}
void InvokeReadCallback(int64 position, int size, uint8* buffer,
@@ -578,11 +594,11 @@ class BufferedDataSourceTest : public testing::Test {
// 2. Then the current loader will be stop and destroyed.
StrictMock<MockBufferedResourceLoader> *new_loader =
new StrictMock<MockBufferedResourceLoader>();
- EXPECT_CALL(*data_source_, CreateLoader(position, -1))
+ EXPECT_CALL(*data_source_, CreateResourceLoader(position, -1))
.WillOnce(Return(new_loader));
// 3. Then the new loader will be started.
- EXPECT_CALL(*new_loader, Start(NotNull()))
+ EXPECT_CALL(*new_loader, Start(NotNull(), NotNull()))
.WillOnce(DoAll(Assign(&error_, net::OK),
Invoke(this,
&BufferedDataSourceTest::InvokeStartCallback)));
@@ -642,13 +658,13 @@ class BufferedDataSourceTest : public testing::Test {
// 2. Then the current loader will be stop and destroyed.
StrictMock<MockBufferedResourceLoader> *new_loader =
new StrictMock<MockBufferedResourceLoader>();
- EXPECT_CALL(*data_source_, CreateLoader(position, -1))
+ EXPECT_CALL(*data_source_, CreateResourceLoader(position, -1))
.WillOnce(Return(new_loader));
// 3. Then the new loader will be started and respond to queries about
// whether this is a partial response using the value of the previous
// loader.
- EXPECT_CALL(*new_loader, Start(NotNull()))
+ EXPECT_CALL(*new_loader, Start(NotNull(), NotNull()))
.WillOnce(DoAll(Assign(&error_, net::OK),
Invoke(this,
&BufferedDataSourceTest::InvokeStartCallback)));
@@ -684,7 +700,7 @@ class BufferedDataSourceTest : public testing::Test {
scoped_ptr<StrictMock<MockMediaResourceLoaderBridgeFactory> >
bridge_factory_;
scoped_refptr<StrictMock<MockBufferedResourceLoader> > loader_;
- scoped_refptr<MockBufferedDataSource > data_source_;
+ scoped_refptr<MockBufferedDataSource> data_source_;
scoped_refptr<media::FilterFactory> factory_;
StrictMock<media::MockFilterHost> host_;

Powered by Google App Engine
This is Rietveld 408576698