/* 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 <string>
#include "GMPUtils.h"
#include "gtest/gtest.h"
#include "nsString.h"
using
namespace mozilla;
void TestSplitAt(
const char * aInput,
const char * aDelims,
size_t aNumExpectedTokens,
const char * aExpectedTokens[]) {
nsCString input(aInput);
nsTArray<nsCString> tokens;
SplitAt(aDelims, input, tokens);
EXPECT_EQ(tokens.Length(), aNumExpectedTokens)
<<
"Should get expected number of tokens" ;
for (size_t i =
0 ; i < tokens.Length(); i++) {
EXPECT_TRUE(tokens[i].EqualsASCII(aExpectedTokens[i]))
<<
"Tokenize fail; expected=" << aExpectedTokens[i]
<<
" got=" << tokens[i].get();
}
}
TEST(GeckoMediaPlugins, TestSplitAt)
{
{
const char * input =
"1,2,3,4" ;
const char * delims =
"," ;
const char * tokens[] = {
"1" ,
"2" ,
"3" ,
"4" };
TestSplitAt(input, delims, std::size(tokens), tokens);
}
{
const char * input =
"a simple, comma, seperated, list" ;
const char * delims =
"," ;
const char * tokens[] = {
"a simple" ,
" comma" ,
" seperated" ,
" list" };
TestSplitAt(input, delims, std::size(tokens), tokens);
}
{
const char * input =
// Various platform line endings...
"line1\r\n" // Windows
"line2\r" // Old MacOSX
"line3\n" // Unix
"line4" ;
const char * delims =
"\r\n" ;
const char * tokens[] = {
"line1" ,
"line2" ,
"line3" ,
"line4" };
TestSplitAt(input, delims, std::size(tokens), tokens);
}
}
TEST(GeckoMediaPlugins, ToHexString)
{
struct Test {
nsTArray<uint8_t> bytes;
std::string hex;
};
static const Test tests[] = {
{{
0 x00,
0 x00},
"0000" },
{{
0 xff,
0 xff},
"ffff" },
{{
0 xff,
0 x00},
"ff00" },
{{
0 x00,
0 xff},
"00ff" },
{{
0 xf0,
0 x10},
"f010" },
{{
0 x05,
0 x50},
"0550" },
{{
0 xf},
"0f" },
{{
0 x10},
"10" },
{{},
"" },
{{
0 x00,
0 x11,
0 x22,
0 x33,
0 x44,
0 x55,
0 x66,
0 x77,
0 x88,
0 x99,
0 xaa,
0 xbb,
0 xcc,
0 xdd,
0 xee,
0 xff},
"00112233445566778899aabbccddeeff" },
};
for (
const Test& test : tests) {
EXPECT_STREQ(test.hex.c_str(), ToHexString(test.bytes).get());
}
}
Messung V0.5 in Prozent C=89 H=96 G=92
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland