1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/basictypes.h"
6 #include "chrome/browser/sync_file_system/drive_backend_v1/origin_operation_queue.h"
7 #include "testing/gtest/include/gtest/gtest.h"
9 namespace sync_file_system {
13 void PopAndVerify(const GURL& expected_origin,
14 OriginOperation::Type expected_type,
15 OriginOperationQueue* queue) {
16 ASSERT_FALSE(queue->empty());
19 EXPECT_EQ(expected_origin, op.origin);
20 EXPECT_EQ(expected_type, op.type);
25 TEST(OriginOperationQueueTest, Simple) {
26 GURL origin1("chrome-extension://foo");
27 GURL origin2("chrome-extension://bar");
28 OriginOperationQueue queue;
30 queue.Push(origin1, OriginOperation::REGISTERING);
31 queue.Push(origin2, OriginOperation::DISABLING);
32 queue.Push(origin1, OriginOperation::UNINSTALLING);
34 ASSERT_EQ(3U, queue.size());
35 ASSERT_TRUE(queue.HasPendingOperation(origin1));
36 ASSERT_TRUE(queue.HasPendingOperation(origin2));
38 PopAndVerify(origin1, OriginOperation::REGISTERING, &queue);
39 PopAndVerify(origin2, OriginOperation::DISABLING, &queue);
41 ASSERT_TRUE(queue.HasPendingOperation(origin1));
42 ASSERT_FALSE(queue.HasPendingOperation(origin2));
44 PopAndVerify(origin1, OriginOperation::UNINSTALLING, &queue);
46 ASSERT_TRUE(queue.empty());
47 ASSERT_FALSE(queue.HasPendingOperation(origin1));
48 ASSERT_FALSE(queue.HasPendingOperation(origin2));
51 } // namespace sync_file_system