• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 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 "suffix_match_trie.h"
18 
19 using namespace std;
20 using namespace testing::ext;
21 using namespace OHOS::NetManagerStandard;
22 
23 namespace {
24 static const string TEST_SUFFIX1 = "harmony.com";
25 static const string TEST_SUFFIX2 = "openharmony.com";
26 static const string TEST_DOMAIN_STR1 = "mony.com";
27 static const string TEST_DOMAIN_STR2 = "test.harmony.com";
28 static const string TEST_DOMAIN_STR3 = "test.openharmony.com";
29 static const string TEST_DOMAIN_STR4 = "test.openharMONY.Com";
30 }
31 
32 class SuffixMatchTrieTest : public testing::Test {
33 public:
34     static void SetUpTestCase();
35     static void TearDownTestCase();
36     void SetUp();
37     void TearDown();
38 };
39 
SetUpTestCase()40 void SuffixMatchTrieTest::SetUpTestCase() {}
41 
TearDownTestCase()42 void SuffixMatchTrieTest::TearDownTestCase() {}
43 
SetUp()44 void SuffixMatchTrieTest::SetUp() {}
45 
TearDown()46 void SuffixMatchTrieTest::TearDown() {}
47 
48 HWTEST_F(SuffixMatchTrieTest, SuffixMatchTrieTest001, TestSize.Level0)
49 {
50     SuffixMatchTrie<int> trie;
51     EXPECT_TRUE(trie.Empty());
52     int val1 = 101;
53     trie.Insert(TEST_SUFFIX1, val1);
54 
55     EXPECT_FALSE(trie.Empty());
56 
57     int val = 0;
58     int len = trie.LongestSuffixMatch(TEST_DOMAIN_STR2, val);
59 
60     EXPECT_EQ(len, strlen(TEST_SUFFIX1.c_str()));
61     EXPECT_EQ(val, 101);
62 }
63 
64 HWTEST_F(SuffixMatchTrieTest, SuffixMatchTrieTest002, TestSize.Level0)
65 {
66     SuffixMatchTrie<int> trie;
67     int val1 = 101;
68     trie.Insert(TEST_SUFFIX1, val1);
69     int val = 0;
70     int len = trie.LongestSuffixMatch(TEST_DOMAIN_STR1, val);
71 
72     EXPECT_EQ(len, 0);
73     EXPECT_EQ(val, 0);
74 }
75 
76 HWTEST_F(SuffixMatchTrieTest, SuffixMatchTrieTest003, TestSize.Level0)
77 {
78     SuffixMatchTrie<int> trie;
79     int val1 = 101;
80     int val2 = 102;
81     trie.Insert(TEST_SUFFIX1, val1);
82     trie.Insert(TEST_SUFFIX2, val2);
83     int val = 0;
84     int len = trie.LongestSuffixMatch(TEST_DOMAIN_STR3, val);
85 
86     EXPECT_EQ(len, strlen(TEST_SUFFIX2.c_str()));
87     EXPECT_EQ(val, 102);
88 
89     val = 0;
90     len = 0;
91     len = trie.LongestSuffixMatch(TEST_DOMAIN_STR4, val);
92 
93     EXPECT_EQ(len, strlen(TEST_SUFFIX2.c_str()));
94     EXPECT_EQ(val, 102);
95 }
96 
97 HWTEST_F(SuffixMatchTrieTest, SuffixMatchTrieTest004, TestSize.Level0)
98 {
99     SuffixMatchTrie<int> trie;
100     int val1 = 101;
101     int val2 = 102;
102     int val3 = 201;
103     trie.Insert(TEST_SUFFIX1, val1);
104     trie.Insert(TEST_SUFFIX2, val2);
105     trie.Update(TEST_SUFFIX1, val3);
106 
107     int val = 0;
108     int len = trie.LongestSuffixMatch(TEST_DOMAIN_STR2, val);
109 
110     EXPECT_EQ(len, strlen(TEST_SUFFIX1.c_str()));
111     EXPECT_EQ(val, 201);
112 }