@@ -2,6 +2,7 @@ describe('link-in-text-block', function () {
22 'use strict' ;
33
44 var fixture = document . getElementById ( 'fixture' ) ;
5+ var shadowSupport = axe . testUtils . shadowSupport ;
56 var styleElm ;
67
78 var checkContext = {
@@ -48,12 +49,12 @@ describe('link-in-text-block', function () {
4849 if ( defaultStyle . hasOwnProperty ( prop ) ) {
4950 styleObj [ prop ] = defaultStyle [ prop ] ;
5051 }
51- }
52+ }
5253 for ( prop in outerStyle ) {
5354 if ( outerStyle . hasOwnProperty ( prop ) ) {
5455 styleObj [ prop ] = outerStyle [ prop ] ;
5556 }
56- }
57+ }
5758
5859 var cssLines = Object . keys ( styleObj ) . map ( function ( prop ) {
5960 // Make camelCase prop dash separated
@@ -143,6 +144,45 @@ describe('link-in-text-block', function () {
143144 axe . commons . color . elementIsDistinct = orig ;
144145 } ) ;
145146
147+ ( shadowSupport . v1 ? it : xit ) ( 'works with the block outside the shadow tree' , function ( ) {
148+ var parentElm = document . createElement ( 'div' ) ;
149+ var shadow = parentElm . attachShadow ( { mode : 'open' } ) ;
150+ shadow . innerHTML = '<a href="">Link</a>' ;
151+ var linkElm = shadow . querySelector ( 'a' ) ;
152+ fixture . appendChild ( parentElm ) ;
153+
154+ var orig = axe . commons . color . elementIsDistinct ;
155+ axe . commons . color . elementIsDistinct = function ( arg1 , arg2 ) {
156+ assert . deepEqual ( arg1 , linkElm ) ;
157+ assert . deepEqual ( arg2 , parentElm ) ;
158+ return orig ( arg1 , arg2 ) ;
159+ } ;
160+
161+ checks [ 'link-in-text-block' ] . evaluate . call ( checkContext , linkElm ) ;
162+ axe . commons . color . elementIsDistinct = orig ;
163+ } ) ;
164+
165+ ( shadowSupport . v1 ? it : xit ) ( 'works with the link inside the shadow tree slot' , function ( ) {
166+ var div = document . createElement ( 'div' ) ;
167+ div . innerHTML = '<a href="">Link</a>' ;
168+ var shadow = div . attachShadow ( { mode : 'open' } ) ;
169+ shadow . innerHTML = '<p><slot></slot></p>' ;
170+ fixture . appendChild ( div ) ;
171+
172+ var linkElm = div . querySelector ( 'a' ) ;
173+ var parentElm = shadow . querySelector ( 'p' ) ;
174+
175+ var orig = axe . commons . color . elementIsDistinct ;
176+ axe . commons . color . elementIsDistinct = function ( arg1 , arg2 ) {
177+ assert . deepEqual ( arg1 , linkElm ) ;
178+ assert . deepEqual ( arg2 , parentElm ) ;
179+ return orig ( arg1 , arg2 ) ;
180+ } ;
181+
182+ checks [ 'link-in-text-block' ] . evaluate . call ( checkContext , linkElm ) ;
183+ axe . commons . color . elementIsDistinct = orig ;
184+ } ) ;
185+
146186 } ) ;
147187
148188
@@ -208,16 +248,16 @@ describe('link-in-text-block', function () {
208248 } ) ;
209249
210250 it ( 'returns relatedNodes with undefined' , function ( ) {
211- var linkElm = getLinkElm ( { } , {
212- color : '#000010' ,
213- backgroundImage : 'url(data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7)'
214- } , {
215- color : '#000000'
216- } ) ;
217- assert . isUndefined ( checks [ 'link-in-text-block' ] . evaluate . call ( checkContext , linkElm ) ) ;
218- assert . equal (
219- checkContext . _relatedNodes [ 0 ] ,
220- linkElm . parentNode
221- ) ;
251+ var linkElm = getLinkElm ( { } , {
252+ color : '#000010' ,
253+ backgroundImage : 'url(data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7)'
254+ } , {
255+ color : '#000000'
222256 } ) ;
257+ assert . isUndefined ( checks [ 'link-in-text-block' ] . evaluate . call ( checkContext , linkElm ) ) ;
258+ assert . equal (
259+ checkContext . _relatedNodes [ 0 ] ,
260+ linkElm . parentNode
261+ ) ;
262+ } ) ;
223263} ) ;
0 commit comments