| Index: net/spdy/write_blocked_list_test.cc
|
| diff --git a/net/spdy/write_blocked_list_test.cc b/net/spdy/write_blocked_list_test.cc
|
| index 908f0a9e6edaa430b79de2e6ea6749f74e2000fa..edb309e818b1b82d385bebcd046049821436bb43 100644
|
| --- a/net/spdy/write_blocked_list_test.cc
|
| +++ b/net/spdy/write_blocked_list_test.cc
|
| @@ -4,13 +4,26 @@
|
|
|
| #include "net/spdy/write_blocked_list.h"
|
|
|
| +#include <deque>
|
| +
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| +namespace {
|
| +
|
| +class WriteBlockedListPeer {
|
| + public:
|
| + static std::deque<int>* GetWriteBlockedList(
|
| + int i,
|
| + net::WriteBlockedList<int>* list) {
|
| + return &list->write_blocked_lists_[i];
|
| + }
|
| +};
|
| +
|
| +} // namespace
|
|
|
| namespace net {
|
| namespace test {
|
| namespace {
|
| -
|
| typedef WriteBlockedList<int> IntWriteBlockedList;
|
|
|
| TEST(WriteBlockedListTest, GetHighestPriority) {
|
| @@ -70,6 +83,48 @@ TEST(WriteBlockedListTest, PopFront) {
|
| EXPECT_EQ(3, list.PopFront(4));
|
| }
|
|
|
| +TEST(WriteBlockedListTest, UpdateStreamPriorityInWriteBlockedList) {
|
| + IntWriteBlockedList list;
|
| +
|
| + list.PushBack(1, 1);
|
| + list.PushBack(2, 2);
|
| + list.PushBack(3, 3);
|
| + list.PushBack(1, 3);
|
| + list.PushBack(1, 3);
|
| + EXPECT_EQ(5u, list.NumBlockedStreams());
|
| + EXPECT_EQ(1u, WriteBlockedListPeer::GetWriteBlockedList(1, &list)->size());
|
| + EXPECT_EQ(1u, WriteBlockedListPeer::GetWriteBlockedList(2, &list)->size());
|
| + EXPECT_EQ(3u, WriteBlockedListPeer::GetWriteBlockedList(3, &list)->size());
|
| +
|
| + list.UpdateStreamPriorityInWriteBlockedList(1, 1, 2);
|
| + EXPECT_EQ(0u, WriteBlockedListPeer::GetWriteBlockedList(1, &list)->size());
|
| + EXPECT_EQ(2u, WriteBlockedListPeer::GetWriteBlockedList(2, &list)->size());
|
| + list.UpdateStreamPriorityInWriteBlockedList(3, 3, 1);
|
| + EXPECT_EQ(1u, WriteBlockedListPeer::GetWriteBlockedList(1, &list)->size());
|
| + EXPECT_EQ(2u, WriteBlockedListPeer::GetWriteBlockedList(3, &list)->size());
|
| +
|
| + // Redundant update.
|
| + list.UpdateStreamPriorityInWriteBlockedList(1, 3, 3);
|
| + EXPECT_EQ(2u, WriteBlockedListPeer::GetWriteBlockedList(3, &list)->size());
|
| +
|
| + // No entries for given stream_id / old_priority pair.
|
| + list.UpdateStreamPriorityInWriteBlockedList(4, 4, 1);
|
| + EXPECT_EQ(1u, WriteBlockedListPeer::GetWriteBlockedList(1, &list)->size());
|
| + EXPECT_EQ(2u, WriteBlockedListPeer::GetWriteBlockedList(2, &list)->size());
|
| + EXPECT_EQ(0u, WriteBlockedListPeer::GetWriteBlockedList(4, &list)->size());
|
| +
|
| + // Update multiple entries.
|
| + list.UpdateStreamPriorityInWriteBlockedList(1, 3, 4);
|
| + EXPECT_EQ(0u, WriteBlockedListPeer::GetWriteBlockedList(3, &list)->size());
|
| + EXPECT_EQ(1u, WriteBlockedListPeer::GetWriteBlockedList(4, &list)->size());
|
| +
|
| + EXPECT_EQ(3, list.PopFront(1));
|
| + EXPECT_EQ(2, list.PopFront(2));
|
| + EXPECT_EQ(1, list.PopFront(2));
|
| + EXPECT_EQ(1, list.PopFront(4));
|
| + EXPECT_EQ(0u, list.NumBlockedStreams());
|
| +}
|
| +
|
| } // namespace
|
| } // namespace test
|
| } // namespace net
|
|
|