1
0
Fork 0
pdfbox/tests/test.xqm

128 lines
3.4 KiB
Text
Raw Normal View History

2024-04-08 23:03:36 +01:00
(:~ tests for pdfbox3
:)
module namespace test="urn:expkg-zone58:pdfbox3:tests";
2025-01-24 22:34:48 +00:00
import module namespace pdfbox="org.expkg_zone58.Pdfbox3";
2024-04-08 23:03:36 +01:00
2025-02-15 22:36:02 +00:00
declare variable $test:base:=file:base-dir()=>file:parent();
2024-04-08 23:03:36 +01:00
2025-01-30 16:57:25 +00:00
declare %unit:test
function test:pdfbox-version(){
let $v:= pdfbox:version()=>trace("VER: ")
2025-02-08 23:01:54 +00:00
return unit:assert-equals($v,"3.0.4")
2025-01-30 16:57:25 +00:00
};
declare %unit:test
function test:specification(){
2025-02-09 21:34:13 +00:00
let $pdf:=test:open("samples.pdf/BaseX100.pdf")
2025-01-30 16:57:25 +00:00
let $spec:=pdfbox:specification($pdf)
2025-01-31 16:09:25 +00:00
return unit:assert-equals($spec,"1.4")
2025-01-30 16:57:25 +00:00
};
2024-04-08 23:03:36 +01:00
declare %unit:test
function test:page-count(){
2025-02-09 21:34:13 +00:00
let $pdf:=test:open("samples.pdf/BaseX100.pdf")
2025-01-30 16:57:25 +00:00
let $pages:=pdfbox:page-count($pdf)
2024-04-08 23:03:36 +01:00
return unit:assert-equals($pages,521)
};
declare %unit:test
function test:outline-none(){
2025-02-09 21:34:13 +00:00
let $pdf:=test:open("samples.pdf/BaseX100.pdf")
2025-01-30 16:57:25 +00:00
let $outline:=pdfbox:outline($pdf)
2024-04-08 23:03:36 +01:00
return unit:assert(empty($outline))
};
declare %unit:test
function test:outline-present(){
2025-02-09 21:34:13 +00:00
let $pdf:=test:open("samples.pdf/icelandic-dictionary.pdf")
2025-01-30 16:57:25 +00:00
let $outline:=pdfbox:outline($pdf)
2024-04-08 23:03:36 +01:00
return unit:assert(exists($outline))
};
declare %unit:test
function test:outline-xml(){
2025-02-09 21:34:13 +00:00
let $pdf:=test:open("samples.pdf/icelandic-dictionary.pdf")
2025-02-08 23:01:54 +00:00
let $outline:=pdfbox:outline-xml($pdf)
2024-04-08 23:03:36 +01:00
return unit:assert-equals(count($outline/bookmark),31)
};
declare %unit:test
2025-01-31 21:13:52 +00:00
function test:labels(){
2025-02-09 21:34:13 +00:00
let $pdf:=test:open("samples.pdf/BaseX100.pdf")
2025-01-30 16:57:25 +00:00
2025-01-31 21:13:52 +00:00
let $labels:=pdfbox:labels($pdf)
2024-04-08 23:03:36 +01:00
return (
2025-01-31 21:13:52 +00:00
unit:assert-equals(count($labels),pdfbox:page-count($pdf)),
2024-04-08 23:03:36 +01:00
unit:assert($labels[1]="i") ,
unit:assert($labels[27]="1")
)
};
declare %unit:test
2025-02-16 22:31:13 +00:00
function test:extract(){
2025-02-09 21:34:13 +00:00
let $pdf:=test:open("samples.pdf/BaseX100.pdf")
2024-04-08 23:03:36 +01:00
let $dest:=file:create-temp-file("test",".pdf")=>trace("DEST: ")
2025-02-16 22:31:13 +00:00
let $bin:=pdfbox:extract($pdf,2,12)
2024-04-08 23:03:36 +01:00
return unit:assert(true())
};
declare %unit:test
function test:page-text(){
2025-02-09 21:34:13 +00:00
let $pdf:=test:open("samples.pdf/BaseX100.pdf")
2025-01-30 16:57:25 +00:00
let $text:=pdfbox:page-text($pdf,1)
2024-04-08 23:03:36 +01:00
return unit:assert(starts-with($text,"BaseX Documentation"))
};
2025-01-31 21:13:52 +00:00
declare %unit:test
function test:page-image(){
2025-02-09 21:34:13 +00:00
let $pdf:=test:open("samples.pdf/BaseX100.pdf")
2025-01-31 21:13:52 +00:00
let $image:=pdfbox:page-image($pdf,0,map{})
return unit:assert(true())
};
2025-02-16 22:31:13 +00:00
2025-02-08 23:01:54 +00:00
declare %unit:test
2025-02-10 12:24:34 +00:00
function test:with-pdf(){
2025-02-09 21:34:13 +00:00
let $path:=test:resolve("samples.pdf/BaseX100.pdf")
2025-02-08 23:01:54 +00:00
let $txt:=pdfbox:with-pdf($path,pdfbox:page-text(?,101))
2025-02-09 21:34:13 +00:00
return unit:assert(starts-with($txt,"Options"))
2025-02-08 23:01:54 +00:00
};
2025-02-16 22:31:13 +00:00
(:~ get PDF from url :)
declare %unit:test
function test:with-url(){
let $url:="https://files.basex.org/publications/Gath%20et%20al.%20%5b2009%5d,%20INEX%20Efficiency%20Track%20meets%20XQuery%20Full%20Text%20in%20BaseX.pdf"
let $count:=pdfbox:with-pdf($url,pdfbox:page-count#1)
return unit:assert-equals($count,6)
};
(:~ password missing :)
declare %unit:test("expected", "pdfbox:open")
function test:password-bad(){
let $pdf:=test:open("samples.pdf/page-numbers-password.pdf")
return unit:assert(true())
};
(:~password good :)
declare %unit:test
function test:password-good(){
let $pdf:=test:open("samples.pdf/page-numbers-password.pdf",map{"password":"password"})
return unit:assert(true())
};
(:---------------------------------------:)
declare function test:open($file as xs:string,$opts as map(*))
2025-01-30 16:57:25 +00:00
as item(){
2025-02-16 22:31:13 +00:00
test:resolve($file)=>pdfbox:open($opts)
2024-04-08 23:03:36 +01:00
};
2025-02-09 21:34:13 +00:00
2025-02-16 22:31:13 +00:00
declare function test:open($file as xs:string)
as item(){
test:open($file,map{})
};
2025-02-09 21:34:13 +00:00
declare function test:resolve($file as xs:string)
as item(){
file:resolve-path($file,$test:base)
};