tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

fnmatch_test.cc (2522B)


      1 // Copyright 2023 The Abseil Authors
      2 //
      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 //     https://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 #include "absl/log/internal/fnmatch.h"
     16 
     17 #include "gmock/gmock.h"
     18 #include "gtest/gtest.h"
     19 
     20 namespace {
     21 using ::testing::IsFalse;
     22 using ::testing::IsTrue;
     23 
     24 TEST(FNMatchTest, Works) {
     25  using absl::log_internal::FNMatch;
     26  EXPECT_THAT(FNMatch("foo", "foo"), IsTrue());
     27  EXPECT_THAT(FNMatch("foo", "bar"), IsFalse());
     28  EXPECT_THAT(FNMatch("foo", "fo"), IsFalse());
     29  EXPECT_THAT(FNMatch("foo", "foo2"), IsFalse());
     30  EXPECT_THAT(FNMatch("foo/*", "foo/1/2/3/4"), IsTrue());
     31  EXPECT_THAT(FNMatch("bar/foo.ext", "bar/foo.ext"), IsTrue());
     32  EXPECT_THAT(FNMatch("*ba*r/fo*o.ext*", "bar/foo.ext"), IsTrue());
     33  EXPECT_THAT(FNMatch("bar/foo.ext", "bar/baz.ext"), IsFalse());
     34  EXPECT_THAT(FNMatch("bar/foo.ext", "bar/foo"), IsFalse());
     35  EXPECT_THAT(FNMatch("bar/foo.ext", "bar/foo.ext.zip"), IsFalse());
     36  EXPECT_THAT(FNMatch("ba?/*.ext", "bar/foo.ext"), IsTrue());
     37  EXPECT_THAT(FNMatch("ba?/*.ext", "baZ/FOO.ext"), IsTrue());
     38  EXPECT_THAT(FNMatch("ba?/*.ext", "barr/foo.ext"), IsFalse());
     39  EXPECT_THAT(FNMatch("ba?/*.ext", "bar/foo.ext2"), IsFalse());
     40  EXPECT_THAT(FNMatch("ba?/*", "bar/foo.ext2"), IsTrue());
     41  EXPECT_THAT(FNMatch("ba?/*", "bar/"), IsTrue());
     42  EXPECT_THAT(FNMatch("ba?/?", "bar/"), IsFalse());
     43  EXPECT_THAT(FNMatch("ba?/*", "bar"), IsFalse());
     44  EXPECT_THAT(FNMatch("?x", "zx"), IsTrue());
     45  EXPECT_THAT(FNMatch("*b", "aab"), IsTrue());
     46  EXPECT_THAT(FNMatch("a*b", "aXb"), IsTrue());
     47  EXPECT_THAT(FNMatch("", ""), IsTrue());
     48  EXPECT_THAT(FNMatch("", "a"), IsFalse());
     49  EXPECT_THAT(FNMatch("ab*", "ab"), IsTrue());
     50  EXPECT_THAT(FNMatch("ab**", "ab"), IsTrue());
     51  EXPECT_THAT(FNMatch("ab*?", "ab"), IsFalse());
     52  EXPECT_THAT(FNMatch("*", "bbb"), IsTrue());
     53  EXPECT_THAT(FNMatch("*", ""), IsTrue());
     54  EXPECT_THAT(FNMatch("?", ""), IsFalse());
     55  EXPECT_THAT(FNMatch("***", "**p"), IsTrue());
     56  EXPECT_THAT(FNMatch("**", "*"), IsTrue());
     57  EXPECT_THAT(FNMatch("*?", "*"), IsTrue());
     58 }
     59 
     60 }  // namespace