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")
|
||||
(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