move scribble/html tests to scribble-test collection
This commit is contained in:
parent
1676671ee0
commit
57323846f1
|
@ -2,171 +2,3 @@
|
||||||
|
|
||||||
(require "html/main.rkt")
|
(require "html/main.rkt")
|
||||||
(provide (all-from-out "html/main.rkt"))
|
(provide (all-from-out "html/main.rkt"))
|
||||||
|
|
||||||
(module test racket/base
|
|
||||||
|
|
||||||
;; Check that the HTML tags provided by scribble/html/html
|
|
||||||
;; and scribble/html/extra
|
|
||||||
;; match a master list of HTML tags (defined in this file)
|
|
||||||
;; Also check that `scribble/html/html` is disjoint from `racket/base`
|
|
||||||
|
|
||||||
(require rackunit racket/set)
|
|
||||||
|
|
||||||
(define (phase0-provides m) ; Symbol -> [Setof Symbol]
|
|
||||||
(parameterize ([current-namespace (make-base-namespace)])
|
|
||||||
(dynamic-require m #f)
|
|
||||||
(let-values ([(e1* e2*) (module->exports m)])
|
|
||||||
(for*/seteq ([export* (in-list (list e1* e2*))]
|
|
||||||
[tag+exp (in-list export*)]
|
|
||||||
#:when (or (not (car tag+exp)) (zero? (car tag+exp)))
|
|
||||||
[exp (in-list (cdr tag+exp))])
|
|
||||||
(car exp)))))
|
|
||||||
|
|
||||||
(define (expected-disjoint m1 m2)
|
|
||||||
(format "'~a' and '~a' should provide disjoint sets of identifiers" m1 m2))
|
|
||||||
|
|
||||||
(define (expected-overlap m1 m2)
|
|
||||||
(format "expected '~a' and '~a' to provide overlapping sets of identifiers" m1 m2))
|
|
||||||
|
|
||||||
(define html-provides (phase0-provides 'scribble/html/html))
|
|
||||||
(define extra-provides (phase0-provides 'scribble/html/extra))
|
|
||||||
(define base-provides (phase0-provides 'racket/base))
|
|
||||||
|
|
||||||
(check-pred set-empty?
|
|
||||||
(set-intersect html-provides extra-provides)
|
|
||||||
(expected-disjoint 'scribble/html/html 'scribble/html/extra))
|
|
||||||
|
|
||||||
;; note: 'racket' and 'scribble/html/html' both provide "link"
|
|
||||||
(check-pred set-empty?
|
|
||||||
(set-intersect html-provides base-provides)
|
|
||||||
(expected-disjoint 'scribble/html/html 'racket/base))
|
|
||||||
|
|
||||||
(check-pred positive?
|
|
||||||
(set-count (set-intersect extra-provides base-provides))
|
|
||||||
(expected-overlap 'scribble/html/extra 'racket/base))
|
|
||||||
|
|
||||||
;; From: https://html.spec.whatwg.org/multipage/#toc-semantics
|
|
||||||
(define whatwg-master (list->seteq '(
|
|
||||||
html
|
|
||||||
head
|
|
||||||
title
|
|
||||||
base
|
|
||||||
link
|
|
||||||
meta
|
|
||||||
style
|
|
||||||
body
|
|
||||||
article
|
|
||||||
section
|
|
||||||
nav
|
|
||||||
aside
|
|
||||||
h1 h2 h3 h4 h5 h6
|
|
||||||
hgroup
|
|
||||||
header
|
|
||||||
footer
|
|
||||||
address
|
|
||||||
p
|
|
||||||
hr
|
|
||||||
pre
|
|
||||||
blockquote
|
|
||||||
ol
|
|
||||||
ul
|
|
||||||
li
|
|
||||||
dl
|
|
||||||
dt
|
|
||||||
dd
|
|
||||||
figure
|
|
||||||
figcaption
|
|
||||||
main
|
|
||||||
div
|
|
||||||
a
|
|
||||||
em
|
|
||||||
strong
|
|
||||||
small
|
|
||||||
s
|
|
||||||
cite
|
|
||||||
q
|
|
||||||
dfn
|
|
||||||
abbr
|
|
||||||
ruby
|
|
||||||
rt
|
|
||||||
rp
|
|
||||||
data
|
|
||||||
time
|
|
||||||
code
|
|
||||||
var
|
|
||||||
samp
|
|
||||||
kbd
|
|
||||||
sub sup
|
|
||||||
i
|
|
||||||
b
|
|
||||||
u
|
|
||||||
mark
|
|
||||||
bdi
|
|
||||||
bdo
|
|
||||||
span
|
|
||||||
br
|
|
||||||
wbr
|
|
||||||
ins
|
|
||||||
del
|
|
||||||
picture
|
|
||||||
source
|
|
||||||
img
|
|
||||||
iframe
|
|
||||||
embed
|
|
||||||
object
|
|
||||||
param
|
|
||||||
video
|
|
||||||
audio
|
|
||||||
track
|
|
||||||
map
|
|
||||||
area
|
|
||||||
table
|
|
||||||
caption
|
|
||||||
colgroup
|
|
||||||
col
|
|
||||||
tbody
|
|
||||||
thead
|
|
||||||
tfoot
|
|
||||||
tr
|
|
||||||
td
|
|
||||||
th
|
|
||||||
form
|
|
||||||
label
|
|
||||||
input
|
|
||||||
button
|
|
||||||
select
|
|
||||||
datalist
|
|
||||||
optgroup
|
|
||||||
option
|
|
||||||
textarea
|
|
||||||
keygen
|
|
||||||
output
|
|
||||||
progress
|
|
||||||
meter
|
|
||||||
fieldset
|
|
||||||
legend
|
|
||||||
details
|
|
||||||
summary
|
|
||||||
menu
|
|
||||||
menuitem
|
|
||||||
dialog
|
|
||||||
script
|
|
||||||
noscript
|
|
||||||
template
|
|
||||||
slot
|
|
||||||
canvas)))
|
|
||||||
|
|
||||||
(let ([scribble-master (set-union html-provides extra-provides)])
|
|
||||||
(check-true (subset? whatwg-master scribble-master))
|
|
||||||
;; Uncomment to debug scribble provides vs. whatwg master
|
|
||||||
#;(void
|
|
||||||
(displayln "checking MASTER vs SCRIBBLE")
|
|
||||||
(for ([m (in-set whatwg-master)]
|
|
||||||
#:when (not (set-member? scribble-master m)))
|
|
||||||
(displayln m))
|
|
||||||
(newline)
|
|
||||||
(displayln "checking SCRIBBLE vs MASTER")
|
|
||||||
(for ([s (in-set scribble-master)]
|
|
||||||
#:when (not (set-member? whatwg-master s)))
|
|
||||||
(displayln s))))
|
|
||||||
)
|
|
||||||
|
|
166
scribble-test/tests/scribble/html.rkt
Normal file
166
scribble-test/tests/scribble/html.rkt
Normal file
|
@ -0,0 +1,166 @@
|
||||||
|
#lang racket/base
|
||||||
|
|
||||||
|
;; Check that the HTML tags provided by scribble/html/html
|
||||||
|
;; and scribble/html/extra
|
||||||
|
;; match a master list of HTML tags (defined in this file)
|
||||||
|
;; Also check that `scribble/html/html` is disjoint from `racket/base`
|
||||||
|
|
||||||
|
(require rackunit racket/set)
|
||||||
|
|
||||||
|
(define (phase0-provides m) ; Symbol -> [Setof Symbol]
|
||||||
|
(parameterize ([current-namespace (make-base-namespace)])
|
||||||
|
(dynamic-require m #f)
|
||||||
|
(let-values ([(e1* e2*) (module->exports m)])
|
||||||
|
(for*/seteq ([export* (in-list (list e1* e2*))]
|
||||||
|
[tag+exp (in-list export*)]
|
||||||
|
#:when (or (not (car tag+exp)) (zero? (car tag+exp)))
|
||||||
|
[exp (in-list (cdr tag+exp))])
|
||||||
|
(car exp)))))
|
||||||
|
|
||||||
|
(define (expected-disjoint m1 m2)
|
||||||
|
(format "'~a' and '~a' should provide disjoint sets of identifiers" m1 m2))
|
||||||
|
|
||||||
|
(define (expected-overlap m1 m2)
|
||||||
|
(format "expected '~a' and '~a' to provide overlapping sets of identifiers" m1 m2))
|
||||||
|
|
||||||
|
(define html-provides (phase0-provides 'scribble/html/html))
|
||||||
|
(define extra-provides (phase0-provides 'scribble/html/extra))
|
||||||
|
(define base-provides (phase0-provides 'racket/base))
|
||||||
|
|
||||||
|
(check-pred set-empty?
|
||||||
|
(set-intersect html-provides extra-provides)
|
||||||
|
(expected-disjoint 'scribble/html/html 'scribble/html/extra))
|
||||||
|
|
||||||
|
;; note: 'racket' and 'scribble/html/html' both provide "link"
|
||||||
|
(check-pred set-empty?
|
||||||
|
(set-intersect html-provides base-provides)
|
||||||
|
(expected-disjoint 'scribble/html/html 'racket/base))
|
||||||
|
|
||||||
|
(check-pred positive?
|
||||||
|
(set-count (set-intersect extra-provides base-provides))
|
||||||
|
(expected-overlap 'scribble/html/extra 'racket/base))
|
||||||
|
|
||||||
|
;; From: https://html.spec.whatwg.org/multipage/#toc-semantics
|
||||||
|
(define whatwg-master (list->seteq '(
|
||||||
|
html
|
||||||
|
head
|
||||||
|
title
|
||||||
|
base
|
||||||
|
link
|
||||||
|
meta
|
||||||
|
style
|
||||||
|
body
|
||||||
|
article
|
||||||
|
section
|
||||||
|
nav
|
||||||
|
aside
|
||||||
|
h1 h2 h3 h4 h5 h6
|
||||||
|
hgroup
|
||||||
|
header
|
||||||
|
footer
|
||||||
|
address
|
||||||
|
p
|
||||||
|
hr
|
||||||
|
pre
|
||||||
|
blockquote
|
||||||
|
ol
|
||||||
|
ul
|
||||||
|
li
|
||||||
|
dl
|
||||||
|
dt
|
||||||
|
dd
|
||||||
|
figure
|
||||||
|
figcaption
|
||||||
|
main
|
||||||
|
div
|
||||||
|
a
|
||||||
|
em
|
||||||
|
strong
|
||||||
|
small
|
||||||
|
s
|
||||||
|
cite
|
||||||
|
q
|
||||||
|
dfn
|
||||||
|
abbr
|
||||||
|
ruby
|
||||||
|
rt
|
||||||
|
rp
|
||||||
|
data
|
||||||
|
time
|
||||||
|
code
|
||||||
|
var
|
||||||
|
samp
|
||||||
|
kbd
|
||||||
|
sub sup
|
||||||
|
i
|
||||||
|
b
|
||||||
|
u
|
||||||
|
mark
|
||||||
|
bdi
|
||||||
|
bdo
|
||||||
|
span
|
||||||
|
br
|
||||||
|
wbr
|
||||||
|
ins
|
||||||
|
del
|
||||||
|
picture
|
||||||
|
source
|
||||||
|
img
|
||||||
|
iframe
|
||||||
|
embed
|
||||||
|
object
|
||||||
|
param
|
||||||
|
video
|
||||||
|
audio
|
||||||
|
track
|
||||||
|
map
|
||||||
|
area
|
||||||
|
table
|
||||||
|
caption
|
||||||
|
colgroup
|
||||||
|
col
|
||||||
|
tbody
|
||||||
|
thead
|
||||||
|
tfoot
|
||||||
|
tr
|
||||||
|
td
|
||||||
|
th
|
||||||
|
form
|
||||||
|
label
|
||||||
|
input
|
||||||
|
button
|
||||||
|
select
|
||||||
|
datalist
|
||||||
|
optgroup
|
||||||
|
option
|
||||||
|
textarea
|
||||||
|
keygen
|
||||||
|
output
|
||||||
|
progress
|
||||||
|
meter
|
||||||
|
fieldset
|
||||||
|
legend
|
||||||
|
details
|
||||||
|
summary
|
||||||
|
menu
|
||||||
|
menuitem
|
||||||
|
dialog
|
||||||
|
script
|
||||||
|
noscript
|
||||||
|
template
|
||||||
|
slot
|
||||||
|
canvas)))
|
||||||
|
|
||||||
|
(let ([scribble-master (set-union html-provides extra-provides)])
|
||||||
|
(check-true (subset? whatwg-master scribble-master))
|
||||||
|
;; Uncomment to debug scribble provides vs. whatwg master
|
||||||
|
#;(void
|
||||||
|
(displayln "checking MASTER vs SCRIBBLE")
|
||||||
|
(for ([m (in-set whatwg-master)]
|
||||||
|
#:when (not (set-member? scribble-master m)))
|
||||||
|
(displayln m))
|
||||||
|
(newline)
|
||||||
|
(displayln "checking SCRIBBLE vs MASTER")
|
||||||
|
(for ([s (in-set scribble-master)]
|
||||||
|
#:when (not (set-member? whatwg-master s)))
|
||||||
|
(displayln s))))
|
Loading…
Reference in New Issue
Block a user