@@ -495,70 +495,54 @@ bool urltestdata_encoding(const char *source) {
495495 if constexpr (std::is_same<ada::url_aggregator, result_type>::value) {
496496 std::cout << " \n ====\n " + input_url->to_diagram () + " \n ====\n " ;
497497 }
498- std::string_view protocol;
499- if (!object[" protocol" ].get_string ().get (protocol)) {
500- TEST_ASSERT (input_url->get_protocol (), protocol,
501- " Protocol " + element_string + input_url->to_string ());
502- }
498+ std::string_view protocol = object[" protocol" ].get_string ().value ();
499+ TEST_ASSERT (input_url->get_protocol (), protocol,
500+ " Protocol " + element_string + input_url->to_string ());
503501
504- std::string_view username;
505- if (!object[" username" ].get_string ().get (username)) {
506- TEST_ASSERT (input_url->get_username (), username,
507- " Username " + element_string + input_url->to_string ());
508- }
502+ std::string_view username = object[" username" ].get_string ().value ();
503+ TEST_ASSERT (input_url->get_username (), username,
504+ " Username " + element_string + input_url->to_string ());
509505
510- std::string_view password;
511- if (!object[" password" ].get_string ().get (password)) {
512- TEST_ASSERT (input_url->get_password (), password,
513- " Password " + element_string + input_url->to_string ());
514- }
506+ std::string_view password = object[" password" ].get_string ().value ();
507+ TEST_ASSERT (input_url->get_password (), password,
508+ " Password " + element_string + input_url->to_string ());
515509
516- std::string_view host;
517- if (!object[" host" ].get_string ().get (host)) {
518- TEST_ASSERT (input_url->get_host (), host,
519- " Hostname " + element_string + input_url->to_string ());
520- }
510+ std::string_view host = object[" host" ].get_string ().value ();
511+ TEST_ASSERT (input_url->get_host (), host,
512+ " Host " + element_string + input_url->to_string ());
521513
522- std::string_view hostname;
523- if (!object[" hostname" ].get_string ().get (hostname)) {
524- TEST_ASSERT (input_url->get_hostname (), hostname,
525- " Hostname " + element_string + input_url->to_string ());
526- }
514+ std::string_view hostname = object[" hostname" ].get_string ().value ();
515+ TEST_ASSERT (input_url->get_hostname (), hostname,
516+ " Hostname " + element_string + input_url->to_string ());
527517
528- std::string_view port;
529- if (!object[" port" ].get_string ().get (port)) {
530- TEST_ASSERT (input_url->get_port (), port, " Port " + element_string);
531- }
518+ std::string_view port = object[" port" ].get_string ().value ();
519+ TEST_ASSERT (input_url->get_port (), port, " Port " + element_string);
532520
533- std::string_view pathname{};
534- if (!object[" pathname" ].get_string ().get (pathname)) {
535- TEST_ASSERT (input_url->get_pathname (), pathname,
536- " Pathname " + element_string + input_url->to_string ());
537- }
538- std::string_view query;
539- if (!object[" query" ].get (query)) {
540- TEST_ASSERT (input_url->get_search (), query,
541- " Query " + element_string + input_url->to_string ());
542- }
521+ std::string_view pathname = object[" pathname" ].get_string ().value ();
522+ TEST_ASSERT (input_url->get_pathname (), pathname,
523+ " Pathname " + element_string + input_url->to_string ());
543524
544- std::string_view hash;
545- if (!object[" hash" ].get_string ().get (hash)) {
546- TEST_ASSERT (
547- input_url->get_hash (), hash,
548- " Hash/Fragment " + element_string + input_url->to_string ());
549- }
525+ std::string_view search = object[" search" ].get_string ().value ();
526+ TEST_ASSERT (input_url->get_search (), search,
527+ " Search " + element_string + input_url->to_string ());
550528
551- std::string_view href;
552- if (!object[" href" ].get_string ().get (href)) {
553- TEST_ASSERT (input_url->get_href (), href,
554- " href " + element_string + input_url->to_string ());
555- }
529+ std::string_view hash = object[" hash" ].get_string ().value ();
530+ TEST_ASSERT (
531+ input_url->get_hash (), hash,
532+ " Hash/Fragment " + element_string + input_url->to_string ());
533+
534+ std::string_view href = object[" href" ].get_string ().value ();
535+ TEST_ASSERT (input_url->get_href (), href,
536+ " href " + element_string + input_url->to_string ());
556537
538+ // The origin key may be missing. In that case, the API’s origin
539+ // attribute is not tested.
557540 std::string_view origin;
558541 if (!object[" origin" ].get (origin)) {
559542 TEST_ASSERT (input_url->get_origin (), origin,
560543 " Origin " + element_string + input_url->to_string ());
561544 }
545+
562546 // We need padding.
563547 simdjson::padded_string padded_url_json = parsed_url_json;
564548 // We need a second parser.
0 commit comments