- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / sync_file_system / drive_backend_v1 / origin_operation_queue_unittest.cc
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.
4
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"
8
9 namespace sync_file_system {
10
11 namespace {
12
13 void PopAndVerify(const GURL& expected_origin,
14                   OriginOperation::Type expected_type,
15                   OriginOperationQueue* queue) {
16   ASSERT_FALSE(queue->empty());
17   OriginOperation op;
18   op = queue->Pop();
19   EXPECT_EQ(expected_origin, op.origin);
20   EXPECT_EQ(expected_type, op.type);
21 }
22
23 }  // namespace
24
25 TEST(OriginOperationQueueTest, Simple) {
26   GURL origin1("chrome-extension://foo");
27   GURL origin2("chrome-extension://bar");
28   OriginOperationQueue queue;
29
30   queue.Push(origin1, OriginOperation::REGISTERING);
31   queue.Push(origin2, OriginOperation::DISABLING);
32   queue.Push(origin1, OriginOperation::UNINSTALLING);
33
34   ASSERT_EQ(3U, queue.size());
35   ASSERT_TRUE(queue.HasPendingOperation(origin1));
36   ASSERT_TRUE(queue.HasPendingOperation(origin2));
37
38   PopAndVerify(origin1, OriginOperation::REGISTERING, &queue);
39   PopAndVerify(origin2, OriginOperation::DISABLING, &queue);
40
41   ASSERT_TRUE(queue.HasPendingOperation(origin1));
42   ASSERT_FALSE(queue.HasPendingOperation(origin2));
43
44   PopAndVerify(origin1, OriginOperation::UNINSTALLING, &queue);
45
46   ASSERT_TRUE(queue.empty());
47   ASSERT_FALSE(queue.HasPendingOperation(origin1));
48   ASSERT_FALSE(queue.HasPendingOperation(origin2));
49 }
50
51 }  // namespace sync_file_system