mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-13 21:35:39 +00:00
81 lines
2.0 KiB
C++
81 lines
2.0 KiB
C++
|
/* -*- 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() << "\"";
|
||
|
}
|
||
|
}
|