diff options
Diffstat (limited to 'dom/media/gtest/TestVideoUtils.cpp')
-rw-r--r-- | dom/media/gtest/TestVideoUtils.cpp | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/dom/media/gtest/TestVideoUtils.cpp b/dom/media/gtest/TestVideoUtils.cpp new file mode 100644 index 000000000..f803cbb1d --- /dev/null +++ b/dom/media/gtest/TestVideoUtils.cpp @@ -0,0 +1,80 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "gtest/gtest.h" +#include "nsString.h" +#include "VideoUtils.h" + +using namespace mozilla; + +TEST(StringListRange, MakeStringListRange) +{ + static const struct + { + const char* mList; + const char* mExpected; + } tests[] = + { + { "", "" }, + { " ", "" }, + { ",", "" }, + { " , ", "" }, + { "a", "a|" }, + { " a ", "a|" }, + { "aa,bb", "aa|bb|" }, + { " a a , b b ", "a a|b b|" }, + { " , ,a 1,, ,b 2,", "a 1|b 2|" } + }; + + for (const auto& test : tests) { + nsCString list(test.mList); + nsCString out; + for (const auto& item : MakeStringListRange(list)) { + out += item; + out += "|"; + } + EXPECT_STREQ(test.mExpected, out.Data()); + } +} + +TEST(StringListRange, StringListContains) +{ + static const struct + { + const char* mList; + const char* mItemToSearch; + bool mExpected; + } tests[] = + { + { "", "", false }, + { "", "a", false }, + { " ", "a", false }, + { ",", "a", false }, + { " , ", "", false }, + { " , ", "a", false }, + { "a", "a", true }, + { "a", "b", false }, + { " a ", "a", true }, + { "aa,bb", "aa", true }, + { "aa,bb", "bb", true }, + { "aa,bb", "cc", false }, + { "aa,bb", " aa ", false }, + { " a a , b b ", "a a", true }, + { " , ,a 1,, ,b 2,", "a 1", true }, + { " , ,a 1,, ,b 2,", "b 2", true }, + { " , ,a 1,, ,b 2,", "", false }, + { " , ,a 1,, ,b 2,", " ", false }, + { " , ,a 1,, ,b 2,", "A 1", false }, + { " , ,A 1,, ,b 2,", "a 1", false } + }; + + for (const auto& test : tests) { + nsCString list(test.mList); + nsCString itemToSearch(test.mItemToSearch); + EXPECT_EQ(test.mExpected, StringListContains(list, itemToSearch)) + << "trying to find \"" << itemToSearch.Data() + << "\" in \"" << list.Data() << "\""; + } +} |