Branch Coverage

xs/URI.xsi
Criterion Covered Total %
branch 143 356 40.1


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();
78 0 0 string URI::path_info ()
0 0 string URI::path_info ()
81 4 72 if (newval) {
82 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) : "");
85 72 0 RETVAL = THIS->query_string();
72 0 RETVAL = THIS->query_string();
89 0 1 if (newval) {
90 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) : "");
93 1 0 RETVAL = THIS->raw_query();
1 0 RETVAL = THIS->raw_query();
97 2 6 if (items > 1) {
98 2 0 add_query_args(THIS, MARK+2, items-1, true);
101 6 0 auto data = data_get(ST(0));
102 6 0 RETVAL = data->query_hash(THIS);
110 1 16 if (val) {
111 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);
114 13 3 if (ix == 0) { // param method
115 13 0 auto it = THIS->query().find(name);
13 0 auto it = THIS->query().find(name);
116 13 0 if (it == THIS->query().cend()) XSRETURN_UNDEF;
1 12 if (it == THIS->query().cend()) XSRETURN_UNDEF;
117 12 0 RETVAL = it->second;
119 3 0 size_t nvals = THIS->query().count(name);
3 0 size_t nvals = THIS->query().count(name);
124 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;
127 2 0 EXTEND(SP, (int)nvals);
0 2 EXTEND(SP, (int)nvals);
0 0 EXTEND(SP, (int)nvals);
128 2 0 const auto& query = THIS->query();
129 2 0 auto pair = query.equal_range(name);
130 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());
137 1 0 RETVAL = THIS->query().size();
141 0 0 RETVAL = THIS->query().erase(name);
0 0 RETVAL = THIS->query().erase(name);
145 2 120 if (newval) {
146 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) : "");
149 120 0 RETVAL = THIS->fragment();
154 2 6 if (newval) {
155 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) : "");
158 6 0 RETVAL = THIS->location();
6 0 RETVAL = THIS->location();
165 2 0 string URI::explicit_location ()
2 0 string URI::explicit_location ()
168 2 0 RETVAL = THIS->relative();
2 0 RETVAL = THIS->relative();
173 243 0 RETVAL = THIS->to_string();
243 0 RETVAL = THIS->to_string();
181 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);
182 4 0 else THIS->assign(*xs::in>(source));
3 1 else THIS->assign(*xs::in>(source));
186 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);
188 0 0 Object obj = other;
189 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));
196 2 0 if (dynamic_cast(THIS)) RETVAL = URI::create(*THIS);
2 0 if (dynamic_cast(THIS)) RETVAL = URI::create(*THIS);
197 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);
198 1 0 }
1 0 }
201 3 5 if (items > 1) {
203 3 0 list.reserve(items-1);
204 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)));
205 3 0 THIS->path_segments(list.cbegin(), list.cend());
208 5 0 const std::vector list = THIS->path_segments();
209 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());
210 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());
214 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() ||
219 0 0 if (newval) {
220 0 0 THIS->user(xs::in(newval));
0 0 THIS->user(xs::in(newval));
223 0 0 RETVAL = THIS->user();
0 0 RETVAL = THIS->user();
227 0 0 if (newval) {
228 0 0 THIS->password(xs::in(newval));
0 0 THIS->password(xs::in(newval));
231 0 0 RETVAL = THIS->password();
0 0 RETVAL = THIS->password();