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

Unified Diff: net/spdy/write_blocked_list_test.cc

Issue 822713002: Update from https://crrev.com/309415 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698