1 /*
2  * Copyright (c) 2023 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 "ace_forward_compatibility.h"
18 
19 using namespace testing;
20 using namespace testing::ext;
21 
22 namespace OHOS::Ace {
23 class AceForwardCompatibilityTest : public testing::Test {};
24 
25 /**
26  * @tc.name: TestWithInit
27  * @tc.desc: test without init
28  * @tc.type: FUNC
29  */
30 HWTEST_F(AceForwardCompatibilityTest, TestWithInit, TestSize.Level1)
31 {
32     constexpr char ARKUI_LIB_NAME_COMPATIBLE[] = "libace_compatible.z.so";
33     AceForwardCompatibility::Init("do not care", 10, false);
34     AceForwardCompatibility::ReclaimFileCache(0);
35     AceForwardCompatibility::ReclaimFileCache(getpid());
36     EXPECT_TRUE(AceForwardCompatibility::IsForceOldPipeline());
37     EXPECT_TRUE(AceForwardCompatibility::PipelineChanged());
38     EXPECT_STREQ(AceForwardCompatibility::GetAceLibName(), ARKUI_LIB_NAME_COMPATIBLE);
39 }
40 
41 /**
42  * @tc.name: TestIsForceOldPipeline001
43  * @tc.desc: test without TestIsForceOldPipeline
44  * @tc.type: FUNC
45  */
46 HWTEST_F(AceForwardCompatibilityTest, TestIsForceOldPipeline001, TestSize.Level1)
47 {
48     AceForwardCompatibility::Init("TestIsForceOldPipeline", 9, false);
49     EXPECT_TRUE(AceForwardCompatibility::IsForceOldPipeline());
50 }
51 
52 /**
53  * @tc.name: TestIsForceOldPipeline002
54  * @tc.desc: test without TestIsForceOldPipeline
55  * @tc.type: FUNC
56  */
57 HWTEST_F(AceForwardCompatibilityTest, TestIsForceOldPipeline002, TestSize.Level1)
58 {
59     AceForwardCompatibility::Init("TestIsForceOldPipeline", 9, true);
60     EXPECT_TRUE(AceForwardCompatibility::IsForceOldPipeline());
61 }
62 
63 /**
64  * @tc.name: TestIsNewPipeline001
65  * @tc.desc: test TestIsNewPipeline
66  * @tc.type: FUNC
67  */
68 HWTEST_F(AceForwardCompatibilityTest, TestIsNewPipeline001, TestSize.Level1)
69 {
70     AceForwardCompatibility::Init("TestIsNewPipeline", 10, false);
71     EXPECT_FALSE(AceForwardCompatibility::IsNewPipeline());
72 }
73 
74 /**
75  * @tc.name: TestIsNewPipeline002
76  * @tc.desc: test TestIsNewPipeline
77  * @tc.type: FUNC
78  */
79 HWTEST_F(AceForwardCompatibilityTest, TestIsNewPipeline002, TestSize.Level1)
80 {
81     AceForwardCompatibility::Init("TestIsForceOldPipeline", 9, true);
82     EXPECT_FALSE(AceForwardCompatibility::IsNewPipeline());
83 }
84 
85 /**
86  * @tc.name: TestIsUseNG001
87  * @tc.desc: isNewPipeline_ is true
88  * @tc.type: FUNC
89  */
90 HWTEST_F(AceForwardCompatibilityTest, TestIsUseNG001, TestSize.Level1)
91 {
92     AceForwardCompatibility::Init("TestIsUseNG", 10, false);
93     EXPECT_TRUE(AceForwardCompatibility::IsUseNG());
94 }
95 
96 /**
97  * @tc.name: TestIsUseNG002
98  * @tc.desc: isNewPipeline_ is false
99  * @tc.type: FUNC
100  */
101 HWTEST_F(AceForwardCompatibilityTest, TestIsUseNG002, TestSize.Level1)
102 {
103     AceForwardCompatibility::Init("TestIsForceOldPipeline", 10, true);
104     EXPECT_FALSE(AceForwardCompatibility::IsUseNG());
105 }
106 
107 /**
108  * @tc.name: TestPipelineChanged001
109  * @tc.desc: isNewPipeline_ and isNewAppspawn_ is true
110  * @tc.type: FUNC
111  */
112 HWTEST_F(AceForwardCompatibilityTest, TestPipelineChanged001, TestSize.Level1)
113 {
114     AceForwardCompatibility::Init("TestPipelineChanged", 9, false);
115     EXPECT_TRUE(AceForwardCompatibility::PipelineChanged());
116 }
117 
118 /**
119  * @tc.name: TestGetAceLibName001
120  * @tc.desc: test ARKUI_LIB_NAME_COMPATIBLE
121  * @tc.type: FUNC
122  */
123 HWTEST_F(AceForwardCompatibilityTest, TestGetAceLibName001, TestSize.Level1)
124 {
125     AceForwardCompatibility::Init("TestGetAceLibName", 9, false);
126     constexpr char aceLibName[] = "libace_compatible.z.so";
127     EXPECT_STREQ(AceForwardCompatibility::GetAceLibName(), aceLibName);
128 }
129 } // namespace OHOS::ACE
130