summaryrefslogtreecommitdiffstats
path: root/dom/media/gtest/TestVideoUtils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'dom/media/gtest/TestVideoUtils.cpp')
-rw-r--r--dom/media/gtest/TestVideoUtils.cpp80
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() << "\"";
+ }
+}