@@ -494,6 +494,7 @@ TEST(wpt_urlpattern_tests, urlpattern_test_data) {
494494 auto [input_value, base_url] = parse_inputs_array (inputs);
495495 tl::expected<std::optional<ada::url_pattern_result>, ada::errors>
496496 exec_result;
497+ tl::expected<bool , ada::errors> test_result;
497498 std::string_view base_url_view;
498499 std::string_view* opt_base_url = nullptr ;
499500 if (base_url) {
@@ -504,10 +505,12 @@ TEST(wpt_urlpattern_tests, urlpattern_test_data) {
504505 auto str = std::get<std::string>(input_value);
505506 ada_log (" input_value is str=" , str);
506507 exec_result = parse_result->exec (str, opt_base_url);
508+ test_result = parse_result->test (str, opt_base_url);
507509 } else {
508510 ada_log (" input_value is url_pattern_init" );
509511 auto obj = std::get<ada::url_pattern_init>(input_value);
510512 exec_result = parse_result->exec (obj, opt_base_url);
513+ test_result = parse_result->test (obj, opt_base_url);
511514 }
512515
513516 ondemand::value expected_match = main_object[" expected_match" ].value ();
@@ -517,16 +520,24 @@ TEST(wpt_urlpattern_tests, urlpattern_test_data) {
517520 ASSERT_EQ (exec_result.has_value (), false )
518521 << " Expected error but exec() has_value= "
519522 << exec_result->has_value ();
523+ ASSERT_FALSE (test_result)
524+ << " Expected test() to throw, but it didn't" ;
520525 } else if (expected_match.type () == ondemand::json_type::null) {
521526 ASSERT_EQ (exec_result.has_value (), true )
522527 << " Expected non failure but it throws an error" ;
523528 ASSERT_EQ (exec_result->has_value (), false )
524529 << " Expected null value but exec() returned a value " ;
530+ ASSERT_FALSE (test_result.value ())
531+ << " Expected false for test() but received true" ;
525532 } else {
526533 ASSERT_EQ (exec_result.has_value (), true )
527534 << " Expect match to succeed but it throw an error" ;
528535 ASSERT_EQ (exec_result->has_value (), true )
529536 << " Expect match to succeed but it returned a null value" ;
537+ ASSERT_TRUE (test_result)
538+ << " Expected test() to not throw, but it did" ;
539+ ASSERT_TRUE (test_result.value ())
540+ << " Expected true for test() but received false" ;
530541 auto exec_result_obj = expected_match.get_object ().value ();
531542 auto [expected_exec_result, has_inputs] =
532543 parse_exec_result (exec_result_obj);
0 commit comments