Paste number 54984: uri reference test macro

Index of paste annotations: 1

Paste number 54984: uri reference test macro
Pasted by: turbo24prg
6 months, 4 weeks ago
#dylan | Context in IRC logs
Paste contents:
Raw Source | XML | Display As
Unexpected token ""g:h"".

uri-test:25:   -----
uri-test:26:   "g:h" ("g", "", "h", "", "") => "g:h"
uri-test:27:   -----





define uri-reference-test test1
  "g:h" ("g", "", "h", "", "") => "g:h"
end;

define macro uri-reference-test-definer
  { define uri-reference-test ?name:name
      ?uri:expression
      (?scheme:expression, ?authority:expression,
       ?path:expression, ?query:expression,
       ?fragment:expression)
       => ?result:expression
   end;
  }
   =>
  {
    define test "uri-reference-test-" ## ?name ()
      let uri = parse-uri(?uri);
      check-equal("base-uri scheme", uri.uri-scheme, ?scheme);
      check-equal("base-uri authority", uri.uri-authority, ?authority);
      check-equal("base-uri path", build-path(uri), ?path);
      check-equal("base-uri query", build-query(uri), ?query);
      check-equal("base-uri fragment", uri.uri-fragment, ?fragment);
      let target-uri = transform-uris($base-uri, uri);
      check-equal("target-uri", build-uri(target-uri), ?result);
    end;
  }
end macro;


Annotations for this paste:

Annotation number 1: works only for the first?!
Pasted by: turbo24prg
6 months, 4 weeks ago
Context in IRC logs
Paste contents:
Raw Source | Display As

Unexpected token ""g"".

uri-test:41:   ---
uri-test:42:   "g" ("", "", "g", "", "") => "http://a/b/c/g"
uri-test:43:   ---





define macro uri-reference-test-definer
  { define uri-reference-test ?name:token
      ?uri:token
      (?scheme:token, ?authority:token,
       ?path:token, ?query:token,
       ?fragment:token)
       => ?result:token
   end
  }
   =>
  {
    define test "uri-reference-" ## ?name ()
      let uri = parse-uri(?uri);
      check-equal("base-uri scheme", uri.uri-scheme, ?scheme);
      check-equal("base-uri authority", uri.uri-authority, ?authority);
      check-equal("base-uri path", build-path(uri), ?path);
      check-equal("base-uri query", build-query(uri), ?query);
      check-equal("base-uri fragment", uri.uri-fragment, ?fragment);
      let target-uri = transform-uris($base-uri, uri);
      check-equal("target-uri", build-uri(target-uri), ?result);
    end
  }
end macro;

define uri-reference-test test-1
  "g:h" ("g", "", "h", "", "") => "g:h"
end;

define uri-refernece-test test-2
  "g" ("", "", "g", "", "") => "http://a/b/c/g"
end;

define uri-reference-test test-3
  "./g" ("", "", "./g", "", "") => "http://a/b/c/g"
end;

Colorize as:
Show Line Numbers
Index of paste annotations: 1

Ads absolutely not by Google

Lisppaste pastes can be made by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively.