1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
// SPDX-License-Identifier: GPL-2.0-or-later
/**
* @file
* Test extract_uri
*/
/*
* Authors:
* Thomas Holder
*
* Copyright (C) 2018 Authors
*
* Released under GNU GPL v2+, read the file 'COPYING' for more information.
*/
#include "extract-uri.h"
#include "gtest/gtest.h"
TEST(ExtractUriTest, valid)
{
ASSERT_EQ(extract_uri("url(#foo)"), "#foo");
ASSERT_EQ(extract_uri("url( \t #foo \t )"), "#foo");
ASSERT_EQ(extract_uri("url( '#foo' )"), "#foo");
ASSERT_EQ(extract_uri("url('url(foo)')"), "url(foo)");
ASSERT_EQ(extract_uri("url(\"foo(url)\")"), "foo(url)");
ASSERT_EQ(extract_uri("url()bar"), "");
ASSERT_EQ(extract_uri("url( )bar"), "");
ASSERT_EQ(extract_uri("url(a b)"), "a b");
}
TEST(ExtractUriTest, legacy)
{
ASSERT_EQ(extract_uri("url (foo)"), "foo");
}
TEST(ExtractUriTest, invalid)
{
ASSERT_EQ(extract_uri("#foo"), "");
ASSERT_EQ(extract_uri(" url(foo)"), "");
ASSERT_EQ(extract_uri("url(#foo"), "");
ASSERT_EQ(extract_uri("url('#foo'"), "");
ASSERT_EQ(extract_uri("url('#foo)"), "");
ASSERT_EQ(extract_uri("url #foo)"), "");
}
static char const *extract_end(char const *s)
{
char const *end = nullptr;
extract_uri(s, &end);
return end;
}
TEST(ExtractUriTest, endptr)
{
ASSERT_STREQ(extract_end(""), nullptr);
ASSERT_STREQ(extract_end("url(invalid"), nullptr);
ASSERT_STREQ(extract_end("url('invalid)"), nullptr);
ASSERT_STREQ(extract_end("url(valid)"), "");
ASSERT_STREQ(extract_end("url(valid)foo"), "foo");
ASSERT_STREQ(extract_end("url('valid')bar"), "bar");
ASSERT_STREQ(extract_end("url( 'valid' )bar"), "bar");
ASSERT_STREQ(extract_end("url( valid ) bar "), " bar ");
ASSERT_STREQ(extract_end("url()bar"), "bar");
ASSERT_STREQ(extract_end("url( )bar"), "bar");
}
/*
Local Variables:
mode:c++
c-file-style:"stroustrup"
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
indent-tabs-mode:nil
fill-column:99
End:
*/
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
|