1 // Copyright 2019 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 "content/public/test/no_renderer_crashes_assertion.h" 6 #include "content/public/common/child_process_host.h" 7 #include "testing/gtest/include/gtest/gtest.h" 8 9 namespace content { 10 TEST(NoRendererCrashesAssertionSuspensions,SingleProcess)11TEST(NoRendererCrashesAssertionSuspensions, SingleProcess) { 12 NoRendererCrashesAssertion::Suspensions suspensions; 13 EXPECT_FALSE(suspensions.IsSuspended(123)); 14 EXPECT_FALSE(suspensions.IsSuspended(456)); 15 16 suspensions.AddSuspension(123); 17 EXPECT_TRUE(suspensions.IsSuspended(123)); 18 EXPECT_FALSE(suspensions.IsSuspended(456)); 19 20 suspensions.RemoveSuspension(123); 21 EXPECT_FALSE(suspensions.IsSuspended(123)); 22 EXPECT_FALSE(suspensions.IsSuspended(456)); 23 } 24 TEST(NoRendererCrashesAssertionSuspensions,AllProcesses)25TEST(NoRendererCrashesAssertionSuspensions, AllProcesses) { 26 NoRendererCrashesAssertion::Suspensions suspensions; 27 EXPECT_FALSE(suspensions.IsSuspended(123)); 28 EXPECT_FALSE(suspensions.IsSuspended(456)); 29 30 suspensions.AddSuspension(ChildProcessHost::kInvalidUniqueID); 31 EXPECT_TRUE(suspensions.IsSuspended(123)); 32 EXPECT_TRUE(suspensions.IsSuspended(456)); 33 34 suspensions.RemoveSuspension(ChildProcessHost::kInvalidUniqueID); 35 EXPECT_FALSE(suspensions.IsSuspended(123)); 36 EXPECT_FALSE(suspensions.IsSuspended(456)); 37 } 38 TEST(NoRendererCrashesAssertionSuspensions,SingleProcessNesting)39TEST(NoRendererCrashesAssertionSuspensions, SingleProcessNesting) { 40 NoRendererCrashesAssertion::Suspensions suspensions; 41 EXPECT_FALSE(suspensions.IsSuspended(123)); 42 EXPECT_FALSE(suspensions.IsSuspended(456)); 43 44 suspensions.AddSuspension(123); 45 EXPECT_TRUE(suspensions.IsSuspended(123)); 46 EXPECT_FALSE(suspensions.IsSuspended(456)); 47 48 suspensions.AddSuspension(123); 49 EXPECT_TRUE(suspensions.IsSuspended(123)); 50 EXPECT_FALSE(suspensions.IsSuspended(456)); 51 52 suspensions.RemoveSuspension(123); 53 EXPECT_TRUE(suspensions.IsSuspended(123)); 54 EXPECT_FALSE(suspensions.IsSuspended(456)); 55 56 suspensions.RemoveSuspension(123); 57 EXPECT_FALSE(suspensions.IsSuspended(123)); 58 EXPECT_FALSE(suspensions.IsSuspended(456)); 59 } 60 TEST(NoRendererCrashesAssertionSuspensions,AllProcessesNesting)61TEST(NoRendererCrashesAssertionSuspensions, AllProcessesNesting) { 62 NoRendererCrashesAssertion::Suspensions suspensions; 63 EXPECT_FALSE(suspensions.IsSuspended(123)); 64 EXPECT_FALSE(suspensions.IsSuspended(456)); 65 66 suspensions.AddSuspension(ChildProcessHost::kInvalidUniqueID); 67 EXPECT_TRUE(suspensions.IsSuspended(123)); 68 EXPECT_TRUE(suspensions.IsSuspended(456)); 69 70 suspensions.AddSuspension(ChildProcessHost::kInvalidUniqueID); 71 EXPECT_TRUE(suspensions.IsSuspended(123)); 72 EXPECT_TRUE(suspensions.IsSuspended(456)); 73 74 suspensions.RemoveSuspension(ChildProcessHost::kInvalidUniqueID); 75 EXPECT_TRUE(suspensions.IsSuspended(123)); 76 EXPECT_TRUE(suspensions.IsSuspended(456)); 77 78 suspensions.RemoveSuspension(ChildProcessHost::kInvalidUniqueID); 79 EXPECT_FALSE(suspensions.IsSuspended(123)); 80 EXPECT_FALSE(suspensions.IsSuspended(456)); 81 } 82 83 } // namespace content 84