Lines Matching refs:rel
332 // only URI appears; we don't extract URI unless it bears rel=preload
339 http2::parse_link_header(StringRef::from_lit("<url>; rel=preload"));
346 StringRef::from_lit("<url>; rel=preload; as=file"));
353 StringRef::from_lit("<url>; as=file; rel=preload"));
361 StringRef::from_lit(R"(<url>; rel=preload; title="foo,bar")"));
369 StringRef::from_lit(R"(<url>; title="foo,bar"; rel=preload)"));
376 StringRef::from_lit(R"(<url>; title="foo,bar", <url2>; rel=preload)"));
383 StringRef::from_lit("<url>; rel=preload, <url2>"));
388 // Both have rel=preload, so both urls should be extracted
390 StringRef::from_lit("<url>; rel=preload, <url2>; rel=preload"));
398 StringRef::from_lit("<url>, <url2>;rel=preload"));
405 http2::parse_link_header(StringRef::from_lit("<url>;rel=preload;"));
411 StringRef::from_lit("<url>;rel=preload;, <url>"));
417 http2::parse_link_header(StringRef::from_lit("<url>;rel=preload,"));
424 StringRef::from_lit("<url>,,,<url2>;rel=preload"));
431 http2::parse_link_header(StringRef::from_lit("url>;rel=preload"));
437 http2::parse_link_header(StringRef::from_lit("<url;rel=preload"));
443 http2::parse_link_header(StringRef::from_lit("<url>;rel=preload; as="));
449 http2::parse_link_header(StringRef::from_lit("<url>;as=;rel=preload"));
455 StringRef::from_lit("<url>;as=, <url>;rel=preload"));
461 StringRef::from_lit("<url>; =file; rel=preload"));
467 StringRef::from_lit("<url>;as=file;rel=preload,<url2>;rel=preload"));
475 http2::parse_link_header(StringRef::from_lit("<url>; as; rel=preload"));
482 StringRef::from_lit("<url>; foo*=bar; rel=preload"));
489 StringRef::from_lit("<url>; *=bar; rel=preload"));
495 StringRef::from_lit("<url>; foo*bar=buzz; rel=preload"));
501 StringRef::from_lit("<url>; foo*; rel=preload"));
507 http2::parse_link_header(StringRef::from_lit("<url> rel=preload"));
513 http2::parse_link_header(StringRef::from_lit(" <url>; rel=preload"));
518 // preload is a prefix of bogus rel parameter value
520 http2::parse_link_header(StringRef::from_lit("<url>; rel=preloadx"));
526 StringRef::from_lit(R"(<url>; rel="preload")"));
533 StringRef::from_lit(R"(<url>; rel="preload foo")"));
540 StringRef::from_lit(R"(<url>; rel="foo preload")"));
547 StringRef::from_lit(R"(<url>; rel="foo preload bar")"));
554 StringRef::from_lit(R"(<url>; rel="foo preload bar")"));
561 http2::parse_link_header(StringRef::from_lit(R"(<url>; rel="foo")"));
567 StringRef::from_lit(R"(<url>; rel="foo bar")"));
573 StringRef::from_lit(R"(<url>; rel="preload", <url2>)"));
580 StringRef::from_lit(R"(<url>, <url2>; rel="preload")"));
587 StringRef::from_lit(R"(<url>; rel="preload"; as="font")"));
595 StringRef::from_lit(R"(<url>; rel="preload".)"));
602 StringRef::from_lit(R"(<url>; rel="preload";)"));
609 StringRef::from_lit(R"(<url>; rel="preload",)"));
617 StringRef::from_lit(R"(<url>; rel=" preload")"));
624 StringRef::from_lit(R"(<url>; rel="preload ")"));
630 StringRef::from_lit(R"(<url>; rel=preload; title="foo\"baz\"bar")"));
637 StringRef::from_lit(R"(<url>; rel=preload; anchor="")"));
644 StringRef::from_lit(R"(<url>; rel=preload; anchor="#foo")"));
650 StringRef::from_lit("<url>; rel=preload; anchor=f"));
657 R"(<url>; rel=preload; anchor="#foo", <url2>; rel=preload)"));
664 StringRef::from_lit(R"(<url>; rel=preload; loadpolicy="next")"));
670 StringRef::from_lit(R"(<url>; rel=preload; loadpolicy="")"));
677 StringRef::from_lit(R"(<url>; rel=preload; ANCHOR="#foo", <url2>; )"
686 StringRef::from_lit("<url>; rel=preload; nopush"));
692 StringRef::from_lit("<url>; rel=preload; nopush; foo"));
698 StringRef::from_lit("<url>; nopush; rel=preload"));
704 StringRef::from_lit("<url>; nopushyes; rel=preload"));
709 // rel=preload twice
711 StringRef::from_lit("<url>; rel=preload; rel=preload"));
720 auto rel = StringRef::from_lit("/");
721 CU_ASSERT("/" == http2::path_join(base, StringRef{}, rel, StringRef{}));
725 auto rel = StringRef::from_lit("/alpha");
727 http2::path_join(base, StringRef{}, rel, StringRef{}));
730 // rel ends with trailing '/'
732 auto rel = StringRef::from_lit("/alpha/");
734 http2::path_join(base, StringRef{}, rel, StringRef{}));
737 // rel contains multiple components
739 auto rel = StringRef::from_lit("/alpha/bravo");
741 http2::path_join(base, StringRef{}, rel, StringRef{}));
744 // rel is relative
746 auto rel = StringRef::from_lit("alpha/bravo");
748 http2::path_join(base, StringRef{}, rel, StringRef{}));
751 // rel is relative and base ends without /, which means it refers
754 auto rel = StringRef::from_lit("bravo/charlie");
756 http2::path_join(base, StringRef{}, rel, StringRef{}));
759 // rel contains repeated '/'s
761 auto rel = StringRef::from_lit("/alpha/////bravo/////");
763 http2::path_join(base, StringRef{}, rel, StringRef{}));
768 auto rel = StringRef::from_lit("../charlie/delta");
770 http2::path_join(base, StringRef{}, rel, StringRef{}));
775 auto rel = StringRef::from_lit("../charlie");
777 http2::path_join(base, StringRef{}, rel, StringRef{}));
782 auto rel = StringRef::from_lit("../charlie/../delta");
784 http2::path_join(base, StringRef{}, rel, StringRef{}));
789 auto rel = StringRef::from_lit("../../../");
790 CU_ASSERT("/" == http2::path_join(base, StringRef{}, rel, StringRef{}));
795 auto rel = StringRef::from_lit("../../../charlie");
797 http2::path_join(base, StringRef{}, rel, StringRef{}));
800 // rel ends with '..'
802 auto rel = StringRef::from_lit("charlie/..");
804 http2::path_join(base, StringRef{}, rel, StringRef{}));
807 // base empty and rel contains '..'
809 auto rel = StringRef::from_lit("charlie/..");
810 CU_ASSERT("/" == http2::path_join(base, StringRef{}, rel, StringRef{}));
815 auto rel = StringRef::from_lit("charlie/././././delta");
817 http2::path_join(base, StringRef{}, rel, StringRef{}));
822 auto rel = StringRef::from_lit("charlie/.");
824 http2::path_join(base, StringRef{}, rel, StringRef{}));
829 auto rel = StringRef::from_lit("/");
831 CU_ASSERT("/?q" == http2::path_join(base, StringRef{}, rel, relq));
834 // empty rel and query
836 auto rel = StringRef{};
838 CU_ASSERT("/alpha?q" == http2::path_join(base, StringRef{}, rel, relq));
841 // both rel and query are empty
844 auto rel = StringRef{};
846 CU_ASSERT("/alpha?r" == http2::path_join(base, baseq, rel, relq));
851 auto rel = StringRef::from_lit("/alpha");
853 http2::path_join(base, StringRef{}, rel, StringRef{}));
864 auto rel = StringRef{};
865 CU_ASSERT("/?r" == http2::path_join(base, baseq, rel, StringRef{}));
871 auto rel = StringRef::from_lit("//alpha//bravo");
874 http2::path_join(base, baseq, rel, relq));
880 auto rel = StringRef::from_lit("g");
882 CU_ASSERT("/b/c/g" == http2::path_join(base, baseq, rel, relq));
885 auto rel = StringRef::from_lit("./g");
887 CU_ASSERT("/b/c/g" == http2::path_join(base, baseq, rel, relq));
890 auto rel = StringRef::from_lit("g/");
892 CU_ASSERT("/b/c/g/" == http2::path_join(base, baseq, rel, relq));
895 auto rel = StringRef::from_lit("/g");
897 CU_ASSERT("/g" == http2::path_join(base, baseq, rel, relq));
900 auto rel = StringRef{};
902 CU_ASSERT("/b/c/d;p?y" == http2::path_join(base, baseq, rel, relq));
905 auto rel = StringRef::from_lit("g");
907 CU_ASSERT("/b/c/g?y" == http2::path_join(base, baseq, rel, relq));
910 auto rel = StringRef::from_lit(";x");
912 CU_ASSERT("/b/c/;x" == http2::path_join(base, baseq, rel, relq));
915 auto rel = StringRef::from_lit("g;x");
917 CU_ASSERT("/b/c/g;x" == http2::path_join(base, baseq, rel, relq));
920 auto rel = StringRef::from_lit("g;x");
922 CU_ASSERT("/b/c/g;x?y" == http2::path_join(base, baseq, rel, relq));
925 auto rel = StringRef{};
927 CU_ASSERT("/b/c/d;p?q" == http2::path_join(base, baseq, rel, relq));
930 auto rel = StringRef::from_lit(".");
932 CU_ASSERT("/b/c/" == http2::path_join(base, baseq, rel, relq));
935 auto rel = StringRef::from_lit("./");
937 CU_ASSERT("/b/c/" == http2::path_join(base, baseq, rel, relq));
940 auto rel = StringRef::from_lit("..");
942 CU_ASSERT("/b/" == http2::path_join(base, baseq, rel, relq));
945 auto rel = StringRef::from_lit("../");
947 CU_ASSERT("/b/" == http2::path_join(base, baseq, rel, relq));
950 auto rel = StringRef::from_lit("../g");
952 CU_ASSERT("/b/g" == http2::path_join(base, baseq, rel, relq));
955 auto rel = StringRef::from_lit("../..");
957 CU_ASSERT("/" == http2::path_join(base, baseq, rel, relq));
960 auto rel = StringRef::from_lit("../../");
962 CU_ASSERT("/" == http2::path_join(base, baseq, rel, relq));
965 auto rel = StringRef::from_lit("../../g");
967 CU_ASSERT("/g" == http2::path_join(base, baseq, rel, relq));
970 auto rel = StringRef::from_lit("../../../g");
972 CU_ASSERT("/g" == http2::path_join(base, baseq, rel, relq));
975 auto rel = StringRef::from_lit("../../../../g");
977 CU_ASSERT("/g" == http2::path_join(base, baseq, rel, relq));
980 auto rel = StringRef::from_lit("/./g");
982 CU_ASSERT("/g" == http2::path_join(base, baseq, rel, relq));
985 auto rel = StringRef::from_lit("/../g");
987 CU_ASSERT("/g" == http2::path_join(base, baseq, rel, relq));
990 auto rel = StringRef::from_lit("g.");
992 CU_ASSERT("/b/c/g." == http2::path_join(base, baseq, rel, relq));
995 auto rel = StringRef::from_lit(".g");
997 CU_ASSERT("/b/c/.g" == http2::path_join(base, baseq, rel, relq));
1000 auto rel = StringRef::from_lit("g..");
1002 CU_ASSERT("/b/c/g.." == http2::path_join(base, baseq, rel, relq));
1005 auto rel = StringRef::from_lit("..g");
1007 CU_ASSERT("/b/c/..g" == http2::path_join(base, baseq, rel, relq));
1010 auto rel = StringRef::from_lit("./../g");
1012 CU_ASSERT("/b/g" == http2::path_join(base, baseq, rel, relq));
1015 auto rel = StringRef::from_lit("./g/.");
1017 CU_ASSERT("/b/c/g/" == http2::path_join(base, baseq, rel, relq));
1020 auto rel = StringRef::from_lit("g/./h");
1022 CU_ASSERT("/b/c/g/h" == http2::path_join(base, baseq, rel, relq));
1025 auto rel = StringRef::from_lit("g/../h");
1027 CU_ASSERT("/b/c/h" == http2::path_join(base, baseq, rel, relq));
1030 auto rel = StringRef::from_lit("g;x=1/./y");
1032 CU_ASSERT("/b/c/g;x=1/y" == http2::path_join(base, baseq, rel, relq));
1035 auto rel = StringRef::from_lit("g;x=1/../y");
1037 CU_ASSERT("/b/c/y" == http2::path_join(base, baseq, rel, relq));