Branch Coverage

URI.xsi
Criterion Covered Total %
branch 143 352 40.6


line true false branch
9 13 0 Stash stash(__PACKAGE__);
12 13 0 xs::exp::create_constants(stash, {
13 0 xs::exp::create_constants(stash, {
13 0 xs::exp::create_constants(stash, {
13 0 xs::exp::create_constants(stash, {
13 0 xs::exp::create_constants(stash, {
13 0 xs::exp::create_constants(stash, {
65 13 xs::exp::create_constants(stash, {
0 0 xs::exp::create_constants(stash, {
20 13 0 });
21 13 0 xs::exp::autoexport(stash);
13 0 xs::exp::autoexport(stash);
26 96 0 RETVAL = make_backref(url, flags);
27 96 0 }
28 96 0
30 0 59 if (newval) {
31 0 0 THIS->assign(SvOK(newval) ? xs::in(newval) : "", flags);
0 0 THIS->assign(SvOK(newval) ? xs::in(newval) : "", flags);
0 0 THIS->assign(SvOK(newval) ? xs::in(newval) : "", flags);
0 0 THIS->assign(SvOK(newval) ? xs::in(newval) : "", flags);
0 0 THIS->assign(SvOK(newval) ? xs::in(newval) : "", flags);
34 59 0 RETVAL = THIS->to_string();
59 0 RETVAL = THIS->to_string();
38 12 67 if (newval) {
39 0 12 THIS->scheme(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->scheme(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->scheme(SvOK(newval) ? xs::in(newval) : "");
12 0 THIS->scheme(SvOK(newval) ? xs::in(newval) : "");
7 5 THIS->scheme(SvOK(newval) ? xs::in(newval) : "");
42 67 0 RETVAL = THIS->scheme();
47 0 59 if (newval) {
48 0 0 THIS->user_info(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->user_info(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->user_info(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->user_info(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->user_info(SvOK(newval) ? xs::in(newval) : "");
51 59 0 RETVAL = THIS->user_info();
55 3 64 if (newval) {
56 0 3 THIS->host(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->host(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->host(SvOK(newval) ? xs::in(newval) : "");
3 0 THIS->host(SvOK(newval) ? xs::in(newval) : "");
3 0 THIS->host(SvOK(newval) ? xs::in(newval) : "");
59 64 0 RETVAL = THIS->host();
63 2 17 if (newval) {
64 2 0 THIS->port(SvIV(newval));
0 0 THIS->port(SvIV(newval));
71 2 63 if (newval) {
72 0 2 THIS->path(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->path(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->path(SvOK(newval) ? xs::in(newval) : "");
2 0 THIS->path(SvOK(newval) ? xs::in(newval) : "");
2 0 THIS->path(SvOK(newval) ? xs::in(newval) : "");
75 63 0 RETVAL = THIS->path();
79 4 72 if (newval) {
80 0 4 THIS->query_string(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->query_string(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->query_string(SvOK(newval) ? xs::in(newval) : "");
4 0 THIS->query_string(SvOK(newval) ? xs::in(newval) : "");
4 0 THIS->query_string(SvOK(newval) ? xs::in(newval) : "");
83 72 0 RETVAL = THIS->query_string();
72 0 RETVAL = THIS->query_string();
87 0 1 if (newval) {
88 0 0 THIS->raw_query(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->raw_query(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->raw_query(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->raw_query(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->raw_query(SvOK(newval) ? xs::in(newval) : "");
91 1 0 RETVAL = THIS->raw_query();
1 0 RETVAL = THIS->raw_query();
95 2 6 if (items > 1) {
96 2 0 add_query_args(THIS, MARK+2, items-1, true);
99 6 0 auto data = data_get(ST(0));
100 6 0 RETVAL = data->query_hash(THIS);
108 1 16 if (val) {
109 1 0 add_param(THIS, string(name), val, true);
1 0 add_param(THIS, string(name), val, true);
1 0 add_param(THIS, string(name), val, true);
112 13 3 if (ix == 0) { // param method
113 13 0 auto it = THIS->query().find(name);
13 0 auto it = THIS->query().find(name);
114 13 0 if (it == THIS->query().cend()) XSRETURN_UNDEF;
1 12 if (it == THIS->query().cend()) XSRETURN_UNDEF;
115 12 0 RETVAL = it->second;
117 3 0 size_t nvals = THIS->query().count(name);
3 0 size_t nvals = THIS->query().count(name);
122 1 0 RETVAL = THIS->query().find(name)->second; break;
1 0 RETVAL = THIS->query().find(name)->second; break;
1 0 RETVAL = THIS->query().find(name)->second; break;
125 2 0 EXTEND(SP, (int)nvals);
0 2 EXTEND(SP, (int)nvals);
0 0 EXTEND(SP, (int)nvals);
126 2 0 const auto& query = THIS->query();
127 2 0 auto pair = query.equal_range(name);
128 4 2 for (auto it = pair.first; it != pair.second; ++it) mPUSHp(it->second.data(), it->second.length());
4 0 for (auto it = pair.first; it != pair.second; ++it) mPUSHp(it->second.data(), it->second.length());
135 1 0 RETVAL = THIS->query().size();
139 0 0 RETVAL = THIS->query().erase(name);
0 0 RETVAL = THIS->query().erase(name);
143 2 120 if (newval) {
144 0 2 THIS->fragment(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->fragment(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->fragment(SvOK(newval) ? xs::in(newval) : "");
2 0 THIS->fragment(SvOK(newval) ? xs::in(newval) : "");
2 0 THIS->fragment(SvOK(newval) ? xs::in(newval) : "");
147 120 0 RETVAL = THIS->fragment();
152 2 6 if (newval) {
153 0 2 THIS->location(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->location(SvOK(newval) ? xs::in(newval) : "");
0 0 THIS->location(SvOK(newval) ? xs::in(newval) : "");
2 0 THIS->location(SvOK(newval) ? xs::in(newval) : "");
2 0 THIS->location(SvOK(newval) ? xs::in(newval) : "");
156 6 0 RETVAL = THIS->location();
6 0 RETVAL = THIS->location();
163 2 0 string URI::explicit_location ()
2 0 string URI::explicit_location ()
166 2 0 RETVAL = THIS->relative();
2 0 RETVAL = THIS->relative();
171 243 0 RETVAL = THIS->to_string();
243 0 RETVAL = THIS->to_string();
179 11 4 if (source.is_string()) THIS->assign(xs::in(source), flags);
11 0 if (source.is_string()) THIS->assign(xs::in(source), flags);
10 1 if (source.is_string()) THIS->assign(xs::in(source), flags);
180 4 0 else THIS->assign(*xs::in>(source));
3 1 else THIS->assign(*xs::in>(source));
184 30 0 if (other.is_string()) RETVAL = THIS->to_string() == xs::in(other);
30 0 if (other.is_string()) RETVAL = THIS->to_string() == xs::in(other);
30 0 if (other.is_string()) RETVAL = THIS->to_string() == xs::in(other);
30 0 if (other.is_string()) RETVAL = THIS->to_string() == xs::in(other);
186 0 0 Object obj = other;
187 0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
0 0 if (obj && obj.stash().isa("URI::XS")) RETVAL = THIS->equals(*xs::in(obj));
194 2 0 if (dynamic_cast(THIS)) RETVAL = URI::create(*THIS);
2 0 if (dynamic_cast(THIS)) RETVAL = URI::create(*THIS);
195 2 0 else RETVAL = new URI(*THIS);
1 1 else RETVAL = new URI(*THIS);
1 1 else RETVAL = new URI(*THIS);
1 0 else RETVAL = new URI(*THIS);
196 1 0 }
1 0 }
199 3 5 if (items > 1) {
201 3 0 list.reserve(items-1);
202 7 3 for (I32 i = 1; i < items; ++i) list.push_back(xs::in(ST(i)));
7 0 for (I32 i = 1; i < items; ++i) list.push_back(xs::in(ST(i)));
7 0 for (I32 i = 1; i < items; ++i) list.push_back(xs::in(ST(i)));
203 3 0 THIS->path_segments(list.cbegin(), list.cend());
206 5 0 const std::vector list = THIS->path_segments();
207 5 0 EXTEND(SP, (int)list.size());
0 5 EXTEND(SP, (int)list.size());
0 5 EXTEND(SP, (int)list.size());
0 0 EXTEND(SP, (int)list.size());
208 6 5 for (auto it = list.begin(); it != list.end(); ++it) mPUSHp(it->data(), it->length());
6 0 for (auto it = list.begin(); it != list.end(); ++it) mPUSHp(it->data(), it->length());
212 7 0 RETVAL = THIS->scheme().length() || THIS->host().length() || THIS->path().length() || THIS->query_string().length() ||
7 0 RETVAL = THIS->scheme().length() || THIS->host().length() || THIS->path().length() || THIS->query_string().length() ||
7 0 RETVAL = THIS->scheme().length() || THIS->host().length() || THIS->path().length() || THIS->query_string().length() ||
7 0 RETVAL = THIS->scheme().length() || THIS->host().length() || THIS->path().length() || THIS->query_string().length() ||
217 0 0 if (newval) {
218 0 0 THIS->user(xs::in(newval));
0 0 THIS->user(xs::in(newval));
221 0 0 RETVAL = THIS->user();
0 0 RETVAL = THIS->user();
225 0 0 if (newval) {
226 0 0 THIS->password(xs::in(newval));
0 0 THIS->password(xs::in(newval));
229 0 0 RETVAL = THIS->password();
0 0 RETVAL = THIS->password();