diff options
| author | Martin Haug <mhaug@live.de> | 2021-05-31 17:19:46 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2021-05-31 22:33:40 +0200 |
| commit | 37e08460377498165f421a522cb4eb1bb4e246b7 (patch) | |
| tree | 0480965d5497721db1f97d83057902fc2e2e719e /tests/typ/code/import.typ | |
| parent | 00ac68b8451179468aa39cba0d7fbea1ee20e0a1 (diff) | |
Test cases for include and import
Diffstat (limited to 'tests/typ/code/import.typ')
| -rw-r--r-- | tests/typ/code/import.typ | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/tests/typ/code/import.typ b/tests/typ/code/import.typ new file mode 100644 index 00000000..30dc556c --- /dev/null +++ b/tests/typ/code/import.typ @@ -0,0 +1,119 @@ +// Test import statements. + +--- +// Test importing semantics. + +// A named import. +#import "target.typ" using item +#test(item(1, 2), 3) + +// Test that this will be overwritten. +#let value = [foo] + +// Import multiple things. +// Error: 28-29 expected expression, found comma +#import "target.typ" using ,fn, value +#fn[Like and Subscribe!] +#value + +// Code mode +{ + import "target.typ" using b + test(b, 1) +} + +#test(b, 1) + +// This should not exist yet +// Error: 1-3 unknown variable +#d + +// A wildcard import. +#import "target.typ" using * + +// It exists now! +#d + +--- +// Test bad imports. +// Ref: false + +// Error: 9-11 file not found +#import "" using name + +// Error: 9-20 file not found +#import "lib/0.2.1" using * + +// Error: 9-20 file not found +#import "lib@0.2.1" using * + +// Some non-text stuff. +// Error: 9-30 file is not valid utf-8 +#import "../../res/rhino.png" using * + +// Unresolved import. +// Error: 28-40 unresolved import +#import "target.typ" using non_existing + +// Cyclic import. +// Error: 9-34 cyclic import +#import "./importable/cycle1.typ" using * + +--- +// Test syntax. + +// Missing file. +// Error: 9-10 expected expression, found star +#import * + +// Should output `"target.typ"`. +// Error: 1-7 unexpected keyword `using` +#using "target.typ" + +// Should output `target`. +// Error: 3:9-4:8 file not found +// Error: 3:8 expected semicolon or line break +// Error: 2:8 expected keyword `using` +#import "target.typ +using "target + +// Should output `@ 0.2.1 using`. +// Error: 2:21 expected semicolon or line break +// Error: 1:21 expected keyword `using` +#import "target.typ" @ 0.2.1 using * + +// Error: 3:21 expected keyword `using` +// Error: 2:21 expected semicolon or line break +// Error: 1:22-1:28 unexpected keyword `using` +#import "target.typ" #using * + +// Error: 2:21 expected semicolon or line break +// Error: 1:21 expected keyword `using` +#import "target.typ" usinga,b,c + +// Error: 27 expected import items +#import "target.typ" using + +// Error: 2:28-2:29 expected expression, found assignment operator +// Error: 1:29 expected import items +#import "target.typ" using = + +// Allow the trailing comma. +#import "target.typ" using a, c, + +// An additional trailing comma. +// Error: 36-37 expected expression, found comma +#import "target.typ" using a, b, c,, + +// Star in the list. +// Error: 2:31-2:32 expected expression, found star +// Error: 32-33 expected expression, found comma +#import "target.typ" using a, *, b + +// Stop at semicolon. +#import "target.typ" using a, c;Hi + +// Who needs whitespace anyways? +#import "target.typ"using * +#import"target.typ"using* +#import "target.typ"using * |
