OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/cookies/cookie_monster.h" | 5 #include "net/cookies/cookie_monster.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <memory> | 8 #include <memory> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 2515 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2526 // Test that FlushStore() is forwarded to the store and callbacks are posted. | 2526 // Test that FlushStore() is forwarded to the store and callbacks are posted. |
2527 TEST_F(CookieMonsterTest, FlushStore) { | 2527 TEST_F(CookieMonsterTest, FlushStore) { |
2528 scoped_refptr<CallbackCounter> counter(new CallbackCounter()); | 2528 scoped_refptr<CallbackCounter> counter(new CallbackCounter()); |
2529 scoped_refptr<FlushablePersistentStore> store(new FlushablePersistentStore()); | 2529 scoped_refptr<FlushablePersistentStore> store(new FlushablePersistentStore()); |
2530 std::unique_ptr<CookieMonster> cm(new CookieMonster(store.get(), nullptr)); | 2530 std::unique_ptr<CookieMonster> cm(new CookieMonster(store.get(), nullptr)); |
2531 | 2531 |
2532 ASSERT_EQ(0, store->flush_count()); | 2532 ASSERT_EQ(0, store->flush_count()); |
2533 ASSERT_EQ(0, counter->callback_count()); | 2533 ASSERT_EQ(0, counter->callback_count()); |
2534 | 2534 |
2535 // Before initialization, FlushStore() should just run the callback. | 2535 // Before initialization, FlushStore() should just run the callback. |
2536 cm->FlushStore(base::Bind(&CallbackCounter::Callback, counter.get())); | 2536 cm->FlushStore(base::Bind(&CallbackCounter::Callback, counter)); |
2537 base::RunLoop().RunUntilIdle(); | 2537 base::RunLoop().RunUntilIdle(); |
2538 | 2538 |
2539 ASSERT_EQ(0, store->flush_count()); | 2539 ASSERT_EQ(0, store->flush_count()); |
2540 ASSERT_EQ(1, counter->callback_count()); | 2540 ASSERT_EQ(1, counter->callback_count()); |
2541 | 2541 |
2542 // NULL callback is safe. | 2542 // NULL callback is safe. |
2543 cm->FlushStore(base::Closure()); | 2543 cm->FlushStore(base::Closure()); |
2544 base::RunLoop().RunUntilIdle(); | 2544 base::RunLoop().RunUntilIdle(); |
2545 | 2545 |
2546 ASSERT_EQ(0, store->flush_count()); | 2546 ASSERT_EQ(0, store->flush_count()); |
2547 ASSERT_EQ(1, counter->callback_count()); | 2547 ASSERT_EQ(1, counter->callback_count()); |
2548 | 2548 |
2549 // After initialization, FlushStore() should delegate to the store. | 2549 // After initialization, FlushStore() should delegate to the store. |
2550 GetAllCookies(cm.get()); // Force init. | 2550 GetAllCookies(cm.get()); // Force init. |
2551 cm->FlushStore(base::Bind(&CallbackCounter::Callback, counter.get())); | 2551 cm->FlushStore(base::Bind(&CallbackCounter::Callback, counter)); |
2552 base::RunLoop().RunUntilIdle(); | 2552 base::RunLoop().RunUntilIdle(); |
2553 | 2553 |
2554 ASSERT_EQ(1, store->flush_count()); | 2554 ASSERT_EQ(1, store->flush_count()); |
2555 ASSERT_EQ(2, counter->callback_count()); | 2555 ASSERT_EQ(2, counter->callback_count()); |
2556 | 2556 |
2557 // NULL callback is still safe. | 2557 // NULL callback is still safe. |
2558 cm->FlushStore(base::Closure()); | 2558 cm->FlushStore(base::Closure()); |
2559 base::RunLoop().RunUntilIdle(); | 2559 base::RunLoop().RunUntilIdle(); |
2560 | 2560 |
2561 ASSERT_EQ(2, store->flush_count()); | 2561 ASSERT_EQ(2, store->flush_count()); |
2562 ASSERT_EQ(2, counter->callback_count()); | 2562 ASSERT_EQ(2, counter->callback_count()); |
2563 | 2563 |
2564 // If there's no backing store, FlushStore() is always a safe no-op. | 2564 // If there's no backing store, FlushStore() is always a safe no-op. |
2565 cm.reset(new CookieMonster(nullptr, nullptr)); | 2565 cm.reset(new CookieMonster(nullptr, nullptr)); |
2566 GetAllCookies(cm.get()); // Force init. | 2566 GetAllCookies(cm.get()); // Force init. |
2567 cm->FlushStore(base::Closure()); | 2567 cm->FlushStore(base::Closure()); |
2568 base::RunLoop().RunUntilIdle(); | 2568 base::RunLoop().RunUntilIdle(); |
2569 | 2569 |
2570 ASSERT_EQ(2, counter->callback_count()); | 2570 ASSERT_EQ(2, counter->callback_count()); |
2571 | 2571 |
2572 cm->FlushStore(base::Bind(&CallbackCounter::Callback, counter.get())); | 2572 cm->FlushStore(base::Bind(&CallbackCounter::Callback, counter)); |
2573 base::RunLoop().RunUntilIdle(); | 2573 base::RunLoop().RunUntilIdle(); |
2574 | 2574 |
2575 ASSERT_EQ(3, counter->callback_count()); | 2575 ASSERT_EQ(3, counter->callback_count()); |
2576 } | 2576 } |
2577 | 2577 |
2578 TEST_F(CookieMonsterTest, SetAllCookies) { | 2578 TEST_F(CookieMonsterTest, SetAllCookies) { |
2579 scoped_refptr<FlushablePersistentStore> store(new FlushablePersistentStore()); | 2579 scoped_refptr<FlushablePersistentStore> store(new FlushablePersistentStore()); |
2580 std::unique_ptr<CookieMonster> cm(new CookieMonster(store.get(), nullptr)); | 2580 std::unique_ptr<CookieMonster> cm(new CookieMonster(store.get(), nullptr)); |
2581 cm->SetPersistSessionCookies(true); | 2581 cm->SetPersistSessionCookies(true); |
2582 | 2582 |
(...skipping 900 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3483 monster()->AddCallbackForCookie( | 3483 monster()->AddCallbackForCookie( |
3484 test_url_, "abc", | 3484 test_url_, "abc", |
3485 base::Bind(&RecordCookieChanges, &cookies1, nullptr))); | 3485 base::Bind(&RecordCookieChanges, &cookies1, nullptr))); |
3486 SetCookie(monster(), test_url_, "abc=def"); | 3486 SetCookie(monster(), test_url_, "abc=def"); |
3487 base::RunLoop().RunUntilIdle(); | 3487 base::RunLoop().RunUntilIdle(); |
3488 EXPECT_EQ(1U, cookies0.size()); | 3488 EXPECT_EQ(1U, cookies0.size()); |
3489 EXPECT_EQ(1U, cookies0.size()); | 3489 EXPECT_EQ(1U, cookies0.size()); |
3490 } | 3490 } |
3491 | 3491 |
3492 } // namespace net | 3492 } // namespace net |
OLD | NEW |