1" Test :hardcopy
2
3func Test_printoptions_parsing()
4  " Only test that this doesn't throw an error.
5  set printoptions=left:5in,right:10pt,top:8mm,bottom:2pc
6  set printoptions=left:2in,top:30pt,right:16mm,bottom:3pc
7  set printoptions=header:3,syntax:y,number:7,wrap:n
8  set printoptions=duplex:short,collate:n,jobsplit:y,portrait:n
9  set printoptions=paper:10x14
10  set printoptions=paper:A3
11  set printoptions=paper:A4
12  set printoptions=paper:A5
13  set printoptions=paper:B4
14  set printoptions=paper:B5
15  set printoptions=paper:executive
16  set printoptions=paper:folio
17  set printoptions=paper:ledger
18  set printoptions=paper:legal
19  set printoptions=paper:letter
20  set printoptions=paper:quarto
21  set printoptions=paper:statement
22  set printoptions=paper:tabloid
23  set printoptions=formfeed:y
24  set printoptions=
25  set printoptions&
26
27  call assert_fails('set printoptions=paper', 'E550:')
28  call assert_fails('set printoptions=shredder:on', 'E551:')
29  call assert_fails('set printoptions=left:no', 'E552:')
30endfunc
31
32func Test_printmbfont_parsing()
33  " Only test that this doesn't throw an error.
34  set printmbfont=r:WadaMin-Regular,b:WadaMin-Bold,i:WadaMin-Italic,o:WadaMin-Bold-Italic,c:yes,a:no
35  set printmbfont=
36  set printmbfont&
37endfunc
38
39func Test_printheader_parsing()
40  " Only test that this doesn't throw an error.
41  set printheader=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P
42  set printheader=%<%f%h%m%r%=%b\ 0x%B\ \ %l,%c%V\ %P
43  set printheader=%<%f%=\ [%1*%M%*%n%R%H]\ %-19(%3l,%02c%03V%)%O'%02b'
44  set printheader=...%r%{VarExists('b:gzflag','\ [GZ]')}%h...
45  set printheader=
46  set printheader&
47endfunc
48
49" Test that :hardcopy produces a non-empty file.
50" We don't check much of the contents.
51func Test_with_syntax()
52  if has('postscript')
53    set printoptions=syntax:y
54    syn on
55    hardcopy > Xhardcopy
56    let lines = readfile('Xhardcopy')
57    call assert_true(len(lines) > 20)
58    call assert_true(lines[0] =~ 'PS-Adobe')
59    call delete('Xhardcopy')
60    set printoptions&
61  endif
62endfunc
63