1 /*
2  * Copyright (c) 2021 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <gtest/gtest.h>
17 #include <gtest/gtest.h>
18 
19 #define private public
20 #include "start_options.h"
21 #undef private
22 
23 #include "ability_window_configuration.h"
24 #include "parcel.h"
25 
26 using namespace testing::ext;
27 namespace OHOS {
28 namespace AAFwk {
29 namespace {
30 const int32_t TEST_DISPLAY_ID = 1;
31 const bool TEST_TRUE = true;
32 const bool TEST_FALSE = false;
33 } // namespace
34 
35 class StartOptionsTest : public testing::Test {
36 public:
37     static void SetUpTestCase();
38     static void TearDownTestCase();
39     void SetUp();
40     void TearDown();
41 };
42 
SetUpTestCase()43 void StartOptionsTest::SetUpTestCase()
44 {}
45 
TearDownTestCase()46 void StartOptionsTest::TearDownTestCase()
47 {}
48 
SetUp()49 void StartOptionsTest::SetUp()
50 {}
51 
TearDown()52 void StartOptionsTest::TearDown()
53 {}
54 
55 /**
56  * @tc.name: start_options_test_001
57  * @tc.desc: test class StartOptions number function
58  * @tc.type: FUNC
59  */
60 HWTEST_F(StartOptionsTest, start_options_test_001, TestSize.Level1)
61 {
62     StartOptions startOptions;
63     startOptions.SetWindowMode(AbilityWindowConfiguration::MULTI_WINDOW_DISPLAY_FULLSCREEN);
64     startOptions.SetDisplayID(TEST_DISPLAY_ID);
65     EXPECT_EQ(startOptions.GetWindowMode(), AbilityWindowConfiguration::MULTI_WINDOW_DISPLAY_FULLSCREEN);
66     EXPECT_EQ(startOptions.GetDisplayID(), TEST_DISPLAY_ID);
67 
68     StartOptions secondStartOptions(startOptions);
69     EXPECT_EQ(startOptions.GetWindowMode(), AbilityWindowConfiguration::MULTI_WINDOW_DISPLAY_FULLSCREEN);
70     EXPECT_EQ(startOptions.GetDisplayID(), TEST_DISPLAY_ID);
71 
72     StartOptions thirdStartOptions = secondStartOptions;
73     EXPECT_EQ(startOptions.GetWindowMode(), AbilityWindowConfiguration::MULTI_WINDOW_DISPLAY_FULLSCREEN);
74     EXPECT_EQ(startOptions.GetDisplayID(), TEST_DISPLAY_ID);
75 
76     Parcel parcel;
77     int ret1 = startOptions.Marshalling(parcel);
78     EXPECT_EQ(ret1, true);
79     auto retOptions = startOptions.Unmarshalling(parcel);
80     EXPECT_EQ(retOptions->GetWindowMode(), AbilityWindowConfiguration::MULTI_WINDOW_DISPLAY_FULLSCREEN);
81     EXPECT_EQ(retOptions->GetDisplayID(), TEST_DISPLAY_ID);
82 
83     StartOptions fourthStartOptions;
84     EXPECT_TRUE(startOptions.Marshalling(parcel));
85     auto ret2 = fourthStartOptions.ReadFromParcel(parcel);
86     EXPECT_EQ(ret2, true);
87     EXPECT_EQ(fourthStartOptions.GetWindowMode(), AbilityWindowConfiguration::MULTI_WINDOW_DISPLAY_FULLSCREEN);
88     EXPECT_EQ(fourthStartOptions.GetDisplayID(), TEST_DISPLAY_ID);
89 }
90 
91 /**
92  * @tc.name: start_options_test_002
93  * @tc.desc: test class StartOptions SetWindowFocused function
94  * @tc.type: FUNC
95  */
96 HWTEST_F(StartOptionsTest, start_options_test_002, TestSize.Level1)
97 {
98     StartOptions startOptions;
99 
100     bool ret = startOptions.GetWindowFocused();
101     EXPECT_TRUE(ret);
102 
103     startOptions.SetWindowFocused(TEST_TRUE);
104     ret = startOptions.GetWindowFocused();
105     EXPECT_TRUE(ret);
106 
107     startOptions.SetWindowFocused(TEST_FALSE);
108     ret = startOptions.GetWindowFocused();
109     EXPECT_FALSE(ret);
110 }
111 
112 /**
113  * @tc.name: start_options_test_003
114  * @tc.desc: test class StartOptions &operator= function
115  * @tc.type: FUNC
116  */
117 HWTEST_F(StartOptionsTest, start_options_test_003, TestSize.Level1)
118 {
119     StartOptions firstStartOptions;
120     int32_t windowMode = 10;
121     firstStartOptions.SetWindowMode(windowMode);
122     StartOptions secondStartOptions = firstStartOptions;
123     EXPECT_EQ(secondStartOptions.GetWindowMode(), firstStartOptions.windowMode_);
124 }
125 }  // namespace AppExecFwk
126 }  // namespace OHOS
127