@@ -471,4 +471,116 @@ describe("Signature Editor", () => {
471471 ) ;
472472 } ) ;
473473 } ) ;
474+
475+ describe ( "viewerCssTheme (light)" , ( ) => {
476+ let pages ;
477+
478+ beforeEach ( async ( ) => {
479+ pages = await loadAndWait (
480+ "empty.pdf" ,
481+ ".annotationEditorLayer" ,
482+ null ,
483+ null ,
484+ { viewerCssTheme : "1" }
485+ ) ;
486+ } ) ;
487+
488+ afterEach ( async ( ) => {
489+ await closePages ( pages ) ;
490+ } ) ;
491+
492+ it ( "must check that the signature has the correct color with the light theme" , async ( ) => {
493+ await Promise . all (
494+ pages . map ( async ( [ _ , page ] ) => {
495+ const colorTheme = await page . evaluate ( ( ) => {
496+ const html = document . querySelector ( "html" ) ;
497+ const style = getComputedStyle ( html ) ;
498+ return style . getPropertyValue ( "color-scheme" ) ;
499+ } ) ;
500+ expect ( colorTheme ) . toEqual ( "light" ) ;
501+
502+ await switchToSignature ( page ) ;
503+ await page . click ( "#editorSignatureAddSignature" ) ;
504+
505+ await page . waitForSelector ( "#addSignatureDialog" , {
506+ visible : true ,
507+ } ) ;
508+ await page . type ( "#addSignatureTypeInput" , "Should be black." ) ;
509+ await page . waitForSelector ( `${ addButtonSelector } :not(:disabled)` ) ;
510+ await page . click ( "#addSignatureAddButton" ) ;
511+
512+ const editorSelector = getEditorSelector ( 0 ) ;
513+ await page . waitForSelector ( editorSelector , { visible : true } ) ;
514+ await page . waitForSelector (
515+ `.canvasWrapper > svg use[href="#path_p1_0"]` ,
516+ { visible : true }
517+ ) ;
518+
519+ const color = await page . evaluate ( ( ) => {
520+ const use = document . querySelector (
521+ `.canvasWrapper > svg use[href="#path_p1_0"]`
522+ ) ;
523+ return use . parentNode . getAttribute ( "fill" ) ;
524+ } ) ;
525+ expect ( color ) . toEqual ( "#000000" ) ;
526+ } )
527+ ) ;
528+ } ) ;
529+ } ) ;
530+
531+ describe ( "viewerCssTheme (dark)" , ( ) => {
532+ let pages ;
533+
534+ beforeEach ( async ( ) => {
535+ pages = await loadAndWait (
536+ "empty.pdf" ,
537+ ".annotationEditorLayer" ,
538+ null ,
539+ null ,
540+ { viewerCssTheme : "2" }
541+ ) ;
542+ } ) ;
543+
544+ afterEach ( async ( ) => {
545+ await closePages ( pages ) ;
546+ } ) ;
547+
548+ it ( "must check that the signature has the correct color with the dark theme" , async ( ) => {
549+ await Promise . all (
550+ pages . map ( async ( [ _ , page ] ) => {
551+ const colorTheme = await page . evaluate ( ( ) => {
552+ const html = document . querySelector ( "html" ) ;
553+ const style = getComputedStyle ( html ) ;
554+ return style . getPropertyValue ( "color-scheme" ) ;
555+ } ) ;
556+ expect ( colorTheme ) . toEqual ( "dark" ) ;
557+
558+ await switchToSignature ( page ) ;
559+ await page . click ( "#editorSignatureAddSignature" ) ;
560+
561+ await page . waitForSelector ( "#addSignatureDialog" , {
562+ visible : true ,
563+ } ) ;
564+ await page . type ( "#addSignatureTypeInput" , "Should be black." ) ;
565+ await page . waitForSelector ( `${ addButtonSelector } :not(:disabled)` ) ;
566+ await page . click ( "#addSignatureAddButton" ) ;
567+
568+ const editorSelector = getEditorSelector ( 0 ) ;
569+ await page . waitForSelector ( editorSelector , { visible : true } ) ;
570+ await page . waitForSelector (
571+ `.canvasWrapper > svg use[href="#path_p1_0"]` ,
572+ { visible : true }
573+ ) ;
574+
575+ const color = await page . evaluate ( ( ) => {
576+ const use = document . querySelector (
577+ `.canvasWrapper > svg use[href="#path_p1_0"]`
578+ ) ;
579+ return use . parentNode . getAttribute ( "fill" ) ;
580+ } ) ;
581+ expect ( color ) . toEqual ( "#000000" ) ;
582+ } )
583+ ) ;
584+ } ) ;
585+ } ) ;
474586} ) ;
0 commit comments