@@ -262,7 +262,25 @@ describe("A Chat Message", function () {
262
262
expect ( _converse . api . chatboxes . get ) . not . toHaveBeenCalled ( ) ;
263
263
} ) ) ;
264
264
265
- it ( "will render Openstreetmap-URL from geo-URI" ,
265
+ it ( "will render Openstreetmap-URL from geo-URI with zoom level" ,
266
+ mock . initConverse ( [ 'chatBoxesFetched' ] , { } , async function ( _converse ) {
267
+
268
+ await mock . waitForRoster ( _converse , 'current' , 1 ) ;
269
+ const message = "geo:37.786971,-122.399677;z=7" ;
270
+ const contact_jid = mock . cur_names [ 0 ] . replace ( / / g, '.' ) . toLowerCase ( ) + '@montague.lit' ;
271
+ await mock . openChatBoxFor ( _converse , contact_jid ) ;
272
+ const view = _converse . chatboxviews . get ( contact_jid ) ;
273
+ spyOn ( view . model , 'sendMessage' ) . and . callThrough ( ) ;
274
+ await mock . sendMessage ( view , message ) ;
275
+ await u . waitUntil ( ( ) => view . querySelectorAll ( '.chat-content .chat-msg' ) . length , 1000 ) ;
276
+ expect ( view . model . sendMessage ) . toHaveBeenCalled ( ) ;
277
+ const msg = sizzle ( '.chat-content .chat-msg:last .chat-msg__text' , view ) . pop ( ) ;
278
+ await u . waitUntil ( ( ) => msg . innerHTML . replace ( / \< ! - .* ?- \> / g, '' ) ===
279
+ '<a target="_blank" rel="noopener" href="https://www.openstreetmap.org/?mlat=37.786971&' +
280
+ 'mlon=-122.399677#map=7/37.786971/-122.399677">https://www.openstreetmap.org/?mlat=37.786971&mlon=-122.399677#map=7/37.786971/-122.399677</a>' ) ;
281
+ } ) ) ;
282
+
283
+ it ( "will render Openstreetmap-URL from geo-URI without zoom level" ,
266
284
mock . initConverse ( [ 'chatBoxesFetched' ] , { } , async function ( _converse ) {
267
285
268
286
await mock . waitForRoster ( _converse , 'current' , 1 ) ;
@@ -277,7 +295,41 @@ describe("A Chat Message", function () {
277
295
const msg = sizzle ( '.chat-content .chat-msg:last .chat-msg__text' , view ) . pop ( ) ;
278
296
await u . waitUntil ( ( ) => msg . innerHTML . replace ( / \< ! - .* ?- \> / g, '' ) ===
279
297
'<a target="_blank" rel="noopener" href="https://www.openstreetmap.org/?mlat=37.786971&' +
280
- '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>' ) ;
298
+ 'mlon=-122.399677#map=/37.786971/-122.399677">https://www.openstreetmap.org/?mlat=37.786971&mlon=-122.399677#map=/37.786971/-122.399677</a>' ) ;
299
+ } ) ) ;
300
+
301
+ it ( "will not render geo-URI from Openstreetmap-URL" ,
302
+ mock . initConverse ( [ 'chatBoxesFetched' ] , { } , async function ( _converse ) {
303
+
304
+ await mock . waitForRoster ( _converse , 'current' , 1 ) ;
305
+ const message = "https://www.openstreetmap.org/#map=7/51.724/6.630" ;
306
+ const contact_jid = mock . cur_names [ 0 ] . replace ( / / g, '.' ) . toLowerCase ( ) + '@montague.lit' ;
307
+ await mock . openChatBoxFor ( _converse , contact_jid ) ;
308
+ const view = _converse . chatboxviews . get ( contact_jid ) ;
309
+ spyOn ( view . model , 'sendMessage' ) . and . callThrough ( ) ;
310
+ await mock . sendMessage ( view , message ) ;
311
+ await u . waitUntil ( ( ) => view . querySelectorAll ( '.chat-content .chat-msg' ) . length , 1000 ) ;
312
+ expect ( view . model . sendMessage ) . toHaveBeenCalled ( ) ;
313
+ const msg = sizzle ( '.chat-content .chat-msg:last .chat-msg__text' , view ) . pop ( ) ;
314
+ await u . waitUntil ( ( ) => msg . innerHTML . replace ( / \< ! - .* ?- \> / g, '' ) ===
315
+ 'geo:51.724,6.630;z=7' ) ;
316
+ } ) ) ;
317
+
318
+ it ( "will not render geo-URI from Openstreetmap-URL if additional information present in URL" ,
319
+ mock . initConverse ( [ 'chatBoxesFetched' ] , { } , async function ( _converse ) {
320
+
321
+ await mock . waitForRoster ( _converse , 'current' , 1 ) ;
322
+ const message = "https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=51.507%2C-0.128%3B52.517%2C13.389#map=7/51.724/6.630" ;
323
+ const contact_jid = mock . cur_names [ 0 ] . replace ( / / g, '.' ) . toLowerCase ( ) + '@montague.lit' ;
324
+ await mock . openChatBoxFor ( _converse , contact_jid ) ;
325
+ const view = _converse . chatboxviews . get ( contact_jid ) ;
326
+ spyOn ( view . model , 'sendMessage' ) . and . callThrough ( ) ;
327
+ await mock . sendMessage ( view , message ) ;
328
+ await u . waitUntil ( ( ) => view . querySelectorAll ( '.chat-content .chat-msg' ) . length , 1000 ) ;
329
+ expect ( view . model . sendMessage ) . toHaveBeenCalled ( ) ;
330
+ const msg = sizzle ( '.chat-content .chat-msg:last .chat-msg__text' , view ) . pop ( ) ;
331
+ await u . waitUntil ( ( ) => msg . innerHTML . replace ( / \< ! - .* ?- \> / g, '' ) ===
332
+ 'https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=51.507%2C-0.128%3B52.517%2C13.389#map=7/51.724/6.630' ) ;
281
333
} ) ) ;
282
334
283
335
it ( "can be a carbon message, as defined in XEP-0280" ,
0 commit comments