@@ -336,19 +336,19 @@ BOOST_AUTO_TEST_CASE(swap_test) {
336336BOOST_AUTO_TEST_CASE (equality_test) {
337337 network::uriuri_1 (" http://www.example.com/" );
338338 network::uriuri_2 (" http://www.example.com/" );
339- BOOST_CHECK (uri_1 == uri_2);
339+ BOOST_CHECK_EQUAL (uri_1, uri_2);
340340}
341341
342342BOOST_AUTO_TEST_CASE (equality_test_1) {
343343 network::uriuri_1 (" http://www.example.com/" );
344344 std::stringuri_2 (" http://www.example.com/" );
345- BOOST_CHECK (uri_1 == uri_2);
345+ BOOST_CHECK_EQUAL (uri_1, uri_2);
346346}
347347
348348BOOST_AUTO_TEST_CASE (equality_test_2) {
349349 std::stringuri_1 (" http://www.example.com/" );
350350 network::uriuri_2 (" http://www.example.com/" );
351- BOOST_CHECK (uri_1 == uri_2);
351+ BOOST_CHECK_EQUAL (uri_1, uri_2);
352352}
353353
354354BOOST_AUTO_TEST_CASE (equality_test_3) {
@@ -366,62 +366,93 @@ BOOST_AUTO_TEST_CASE(equality_test_4) {
366366BOOST_AUTO_TEST_CASE (equality_test_reordered_query) {
367367network::uriuri_1 (" http://www.example.com/?a=1&b=2" );
368368network::uriuri_2 (" http://www.example.com/?b=2&a=1" );
369- BOOST_CHECK (uri_1 == uri_2);
369+ BOOST_CHECK_EQUAL (uri_1, uri_2);
370370}
371371
372372BOOST_AUTO_TEST_CASE (equality_test_capitalized_scheme) {
373373network::uriuri_1 (" http://www.example.com/" );
374374network::uriuri_2 (" HTTP://www.example.com/" );
375- BOOST_CHECK (uri_1 == uri_2);
375+ BOOST_CHECK_EQUAL (uri_1, uri_2);
376376}
377377
378378BOOST_AUTO_TEST_CASE (equality_test_capitalized_host) {
379379network::uriuri_1 (" http://www.example.com/" );
380380network::uriuri_2 (" http://WWW.EXAMPLE.COM/" );
381- BOOST_CHECK (uri_1 == uri_2);
381+ BOOST_CHECK_EQUAL (uri_1, uri_2);
382382}
383383
384384BOOST_AUTO_TEST_CASE (equality_test_user_info) {
385385 network::uriuri_1 (" ftp://john.doe@ftp.example.com/" );
386386 network::uriuri_2 (" ftp://JOHN.DOE@ftp.example.com/" );
387- BOOST_CHECK (uri_1 != uri_2);
387+ BOOST_CHECK_PREDICATE (std::not_equal_to<network::uri>(), (uri_1)( uri_2) );
388388}
389389
390390BOOST_AUTO_TEST_CASE (equality_test_default_http_port) {
391391network::uriuri_1 (" http://www.example.com/" );
392392network::uriuri_2 (" http://www.example.com:80/" );
393- BOOST_CHECK (uri_1 == uri_2);
393+ BOOST_CHECK_EQUAL (uri_1, uri_2);
394394}
395395
396396BOOST_AUTO_TEST_CASE (equality_test_default_http_port_2) {
397397network::uriuri_1 (" http://www.example.com:80/" );
398398network::uriuri_2 (" http://www.example.com/" );
399- BOOST_CHECK (uri_1 == uri_2);
399+ BOOST_CHECK_EQUAL (uri_1, uri_2);
400400}
401401
402402BOOST_AUTO_TEST_CASE (equality_test_default_https_port) {
403403network::uriuri_1 (" https://www.example.com/" );
404404network::uriuri_2 (" https://www.example.com:443/" );
405- BOOST_CHECK (uri_1 == uri_2);
405+ BOOST_CHECK_EQUAL (uri_1, uri_2);
406406}
407407
408408BOOST_AUTO_TEST_CASE (equality_test_default_https_port_2) {
409409network::uriuri_1 (" https://www.example.com:443/" );
410410network::uriuri_2 (" https://www.example.com/" );
411- BOOST_CHECK (uri_1 == uri_2);
411+ BOOST_CHECK_EQUAL (uri_1, uri_2);
412+ }
413+
414+ BOOST_AUTO_TEST_CASE (equality_test_empty_path_with_trailing_slash) {
415+ network::uriuri_1 (" http://www.example.com/" );
416+ network::uriuri_2 (" http://www.example.com" );
417+ BOOST_CHECK_EQUAL (uri_1, uri_2);
418+ }
419+
420+ BOOST_AUTO_TEST_CASE (equality_test_with_single_dot_segment) {
421+ network::uriuri_1 (" http://www.example.com/./path" );
422+ network::uriuri_2 (" http://www.example.com/path" );
423+ BOOST_CHECK_EQUAL (uri_1, uri_2);
424+ }
425+
426+ BOOST_AUTO_TEST_CASE (equality_test_with_double_dot_segment) {
427+ network::uriuri_1 (" http://www.example.com/1/../2/" );
428+ network::uriuri_2 (" http://www.example.com/2/" );
429+ BOOST_CHECK_EQUAL (uri_1, uri_2);
430+ }
431+
432+ BOOST_AUTO_TEST_CASE (equality_test_with_trailing_slash) {
433+ network::uriuri_1 (" http://www.example.com/path/" );
434+ network::uriuri_2 (" http://www.example.com/path" );
435+ BOOST_CHECK_EQUAL (uri_1, uri_2);
436+ }
437+
438+ BOOST_AUTO_TEST_CASE (equality_test_with_file_ext) {
439+ network::uriuri_1 (" http://www.example.com/filename.txt" );
440+ network::uriuri_2 (" http://www.example.com/filename.txt/" );
441+ BOOST_CHECK_PREDICATE (std::not_equal_to<network::uri>(), (uri_1)(uri_2));
412442}
413443
414444BOOST_AUTO_TEST_CASE (inequality_test) {
415445 network::uriuri_1 (" http://www.example.com/" );
416446 network::uriuri_2 (" http://www.example.com/" );
417- BOOST_CHECK (!(uri_1 != uri_2));
447+ BOOST_CHECK (!(uri_1 != uri_2));
418448}
419449
420450BOOST_AUTO_TEST_CASE (less_than_test) {
421451// uri_1 is lexicographically less than uri_2
422452 network::uriuri_1 (" http://www.example.com/" );
423453 network::uriuri_2 (" http://www.example.org/" );
424- BOOST_CHECK (uri_1 < uri_2);
454+ BOOST_CHECK_PREDICATE (std::less<network::uri>(), (uri_1)(uri_2));
455+ // BOOST_CHECK(uri_1 < uri_2);
425456}
426457
427458BOOST_AUTO_TEST_CASE (username_test) {