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