Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit766dc7a

Browse files
committed
[URI] Added test for opaqueness.
1 parent71040ee commit766dc7a

File tree

7 files changed

+28
-26
lines changed

7 files changed

+28
-26
lines changed

‎boost/network/uri/builder.hpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class builder {
2727

2828
builder &scheme(const string_type &scheme) {
2929
uri_.uri_.append(scheme);
30-
if (non_hierarchical_schemes::exists(scheme)) {
30+
if (opaque_schemes::exists(scheme)) {
3131
uri_.uri_.append(":");
3232
}
3333
else {

‎boost/network/uri/directives/scheme.hpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ struct scheme_directive {
2727
>
2828
voidoperator () (Uri &uri)const {
2929
uri.append(scheme);
30-
if (non_hierarchical_schemes::exists(scheme)) {
30+
if (opaque_schemes::exists(scheme)) {
3131
uri.append(":");
3232
}
3333
else {

‎boost/network/uri/schemes.hpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class hierarchical_schemes {
2222

2323
};
2424

25-
classnon_hierarchical_schemes {
25+
classopaque_schemes {
2626

2727
public:
2828

‎boost/network/uri/uri.hpp‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,11 +284,21 @@ bool is_absolute(const uri &uri_) {
284284
return uri_.is_valid() && !boost::empty(uri_.scheme_range());
285285
}
286286

287+
inline
288+
boolis_relative(const uri &uri_) {
289+
return uri_.is_valid() &&boost::empty(uri_.scheme_range());
290+
}
291+
287292
inline
288293
boolis_hierarchical(const uri &uri_) {
289294
returnis_absolute(uri_) &&hierarchical_schemes::exists(scheme(uri_));
290295
}
291296

297+
inline
298+
boolis_opaque(const uri &uri_) {
299+
returnis_absolute(uri_) &&opaque_schemes::exists(scheme(uri_));
300+
}
301+
292302
inline
293303
boolis_valid(const uri &uri_) {
294304
returnvalid(uri_);

‎libs/network/src/uri/parse.cpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ struct uri_grammar : qi::grammar<
188188
;
189189

190190
start %=
191-
-(scheme >>':')
191+
(scheme >>':')
192192
>> hier_part
193193
>> -('?' >> query)
194194
>> -('#' >> fragment)

‎libs/network/src/uri/schemes.cpp‎

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace network {
1313
namespaceuri {
1414
namespace {
1515
static boost::unordered_set<std::string> hierarchical_schemes_;
16-
static boost::unordered_set<std::string>non_hierarchical_schemes_;
16+
static boost::unordered_set<std::string>opaque_schemes_;
1717

1818
boolregister_hierarchical_schemes() {
1919
hierarchical_schemes_.insert("http");
@@ -36,27 +36,27 @@ bool register_hierarchical_schemes() {
3636
returntrue;
3737
}
3838

39-
boolregister_non_hierarchical_schemes() {
40-
non_hierarchical_schemes_.insert("mailto");
41-
non_hierarchical_schemes_.insert("news");
42-
non_hierarchical_schemes_.insert("im");
43-
non_hierarchical_schemes_.insert("sip");
44-
non_hierarchical_schemes_.insert("sms");
45-
non_hierarchical_schemes_.insert("xmpp");
39+
boolregister_opaque_schemes() {
40+
opaque_schemes_.insert("mailto");
41+
opaque_schemes_.insert("news");
42+
opaque_schemes_.insert("im");
43+
opaque_schemes_.insert("sip");
44+
opaque_schemes_.insert("sms");
45+
opaque_schemes_.insert("xmpp");
4646
returntrue;
4747
}
4848

4949

5050
staticbool hierarchical = register_hierarchical_schemes();
51-
staticboolnon_hierarchical =register_non_hierarchical_schemes();
51+
staticboolopaque =register_opaque_schemes();
5252
}// namespace
5353

5454
boolhierarchical_schemes::exists(const std::string &scheme) {
5555
return hierarchical_schemes_.end() != hierarchical_schemes_.find(scheme);
5656
}
5757

58-
boolnon_hierarchical_schemes::exists(const std::string &scheme) {
59-
returnnon_hierarchical_schemes_.end() !=non_hierarchical_schemes_.find(scheme);
58+
boolopaque_schemes::exists(const std::string &scheme) {
59+
returnopaque_schemes_.end() !=opaque_schemes_.find(scheme);
6060
}
6161
}// namespace uri
6262
}// namespace network

‎libs/network/test/uri/relative_url_test.cpp‎

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,7 @@
1212
usingnamespaceboost::network;
1313

1414
BOOST_AUTO_TEST_CASE(relative_uri_test) {
15-
uri::uriinstance("www.example.com/");
16-
BOOST_REQUIRE(uri::valid(instance));
17-
BOOST_CHECK(uri::is_absolute(instance));
18-
BOOST_CHECK_EQUAL(uri::path(instance),"www.example.com/");
19-
}
20-
21-
BOOST_AUTO_TEST_CASE(relative_uri_scheme_test) {
22-
uri::uriinstance("www.example.com/");
23-
BOOST_REQUIRE(instance.scheme_range());
24-
BOOST_CHECK(instance.begin() ==boost::begin(instance.scheme_range()));
25-
BOOST_CHECK(instance.begin() ==boost::end(instance.scheme_range()));
15+
// don't yet support relative URIs
16+
uri::uriinstance("example.com");
17+
BOOST_REQUIRE(!uri::valid(instance));
2618
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp