@@ -280,6 +280,42 @@ describe("A Chat Message", function () {
280280 'mlon=-122.399677#map=18/37.786971/-122.399677">https://www.openstreetmap.org/?mlat=37.786971&mlon=-122.399677#map=18/37.786971/-122.399677</a>' ) ;
281281 } ) ) ;
282282
283+ it ( "will not render geo-URI from Openstreetmap-URL" ,
284+ mock . initConverse ( [ 'chatBoxesFetched' ] , { } , async function ( _converse ) {
285+
286+ await mock . waitForRoster ( _converse , 'current' , 1 ) ;
287+ const message = "https://www.openstreetmap.org/#map=18/68.24920/13.61230" ;
288+ const contact_jid = mock . cur_names [ 0 ] . replace ( / / g, '.' ) . toLowerCase ( ) + '@montague.lit' ;
289+ await mock . openChatBoxFor ( _converse , contact_jid ) ;
290+ const view = _converse . chatboxviews . get ( contact_jid ) ;
291+ spyOn ( view . model , 'sendMessage' ) . and . callThrough ( ) ;
292+ await mock . sendMessage ( view , message ) ;
293+ await u . waitUntil ( ( ) => view . querySelectorAll ( '.chat-content .chat-msg' ) . length , 1000 ) ;
294+ expect ( view . model . sendMessage ) . toHaveBeenCalled ( ) ;
295+ const msg = sizzle ( '.chat-content .chat-msg:last .chat-msg__text' , view ) . pop ( ) ;
296+ await u . waitUntil ( ( ) => msg . innerHTML . replace ( / \< ! - .* ?- \> / g, '' ) ===
297+ '<a target="_blank" rel="noopener" href=' +
298+ '"https://www.openstreetmap.org/#map=18/68.24920/13.61230">https://www.openstreetmap.org/#map=18/68.24920/13.61230</a>' ) ;
299+ } ) ) ;
300+
301+ it ( "will render geo-URI from Openstreetmap-URL" ,
302+ mock . initConverse ( [ 'chatBoxesFetched' ] , { 'geouri_regex' : / h t t p s \: \/ \/ w w w .o p e n s t r e e t m a p .o r g \/ .* # m a p = [ 0 - 9 ] + \/ ( [ \- 0 - 9 . ] + ) \/ ( [ \- 0 - 9 . ] + ) \S * / g} ,
303+ async function ( _converse ) {
304+
305+ await mock . waitForRoster ( _converse , 'current' , 1 ) ;
306+ const message = "https://www.openstreetmap.org/#map=18/68.24920/13.61230" ;
307+ const contact_jid = mock . cur_names [ 0 ] . replace ( / / g, '.' ) . toLowerCase ( ) + '@montague.lit' ;
308+ await mock . openChatBoxFor ( _converse , contact_jid ) ;
309+ const view = _converse . chatboxviews . get ( contact_jid ) ;
310+ spyOn ( view . model , 'sendMessage' ) . and . callThrough ( ) ;
311+ await mock . sendMessage ( view , message ) ;
312+ await u . waitUntil ( ( ) => view . querySelectorAll ( '.chat-content .chat-msg' ) . length , 1000 ) ;
313+ expect ( view . model . sendMessage ) . toHaveBeenCalled ( ) ;
314+ const msg = sizzle ( '.chat-content .chat-msg:last .chat-msg__text' , view ) . pop ( ) ;
315+ await u . waitUntil ( ( ) => msg . innerHTML . replace ( / \< ! - .* ?- \> / g, '' ) ===
316+ 'geo:68.24920,13.61230' ) ;
317+ } ) ) ;
318+
283319 it ( "can be a carbon message, as defined in XEP-0280" ,
284320 mock . initConverse ( [ ] , { } , async function ( _converse ) {
285321
0 commit comments