@@ -127,6 +127,38 @@ class EventRequestParserTest extends TestCase
127127 "longitude":134.23
128128 }
129129 },
130+ {
131+ "type":"message",
132+ "timestamp":12345678901234,
133+ "source":{
134+ "type":"user",
135+ "userId":"userid"
136+ },
137+ "replyToken":"replytoken",
138+ "message":{
139+ "id":"contentid",
140+ "type":"location",
141+ "address":"tokyo",
142+ "latitude":-34.12,
143+ "longitude":134.23
144+ }
145+ },
146+ {
147+ "type":"message",
148+ "timestamp":12345678901234,
149+ "source":{
150+ "type":"user",
151+ "userId":"userid"
152+ },
153+ "replyToken":"replytoken",
154+ "message":{
155+ "id":"contentid",
156+ "type":"location",
157+ "title":"label",
158+ "latitude":-34.12,
159+ "longitude":134.23
160+ }
161+ },
130162 {
131163 "type":"message",
132164 "timestamp":12345678901234,
@@ -298,9 +330,9 @@ public function testParseEventRequest()
298330 {
299331 $ bot = new LINEBot (new DummyHttpClient ($ this , function () {
300332 }), ['channelSecret ' => 'testsecret ' ]);
301- $ events = $ bot ->parseEventRequest ($ this ::$ json , 'a4mKmptGCa6Kx/5PU6Ug3zC2SyLzzf9whz9/FbaR4HQ = ' );
333+ $ events = $ bot ->parseEventRequest ($ this ::$ json , 'GQivZqf1zAwZFxrU7Nxc25D1aE8X0P5QGsA/bOhztdM = ' );
302334
303- $ this ->assertEquals (count ($ events ), 20 );
335+ $ this ->assertEquals (count ($ events ), 22 );
304336
305337 {
306338 // text
@@ -384,8 +416,34 @@ public function testParseEventRequest()
384416 }
385417
386418 {
387- // sticker
419+ // location when not set title attribute
388420 $ event = $ events [6 ];
421+ $ this ->assertInstanceOf ('LINE\LINEBot\Event\MessageEvent\LocationMessage ' , $ event );
422+ /** @var LocationMessage $event */
423+ $ this ->assertEquals ('replytoken ' , $ event ->getReplyToken ());
424+ $ this ->assertEquals ('location ' , $ event ->getMessageType ());
425+ $ this ->assertNull ($ event ->getTitle ());
426+ $ this ->assertEquals ('tokyo ' , $ event ->getAddress ());
427+ $ this ->assertEquals ('-34.12 ' , $ event ->getLatitude ());
428+ $ this ->assertEquals ('134.23 ' , $ event ->getLongitude ());
429+ }
430+
431+ {
432+ // location when not set address attribute
433+ $ event = $ events [7 ];
434+ $ this ->assertInstanceOf ('LINE\LINEBot\Event\MessageEvent\LocationMessage ' , $ event );
435+ /** @var LocationMessage $event */
436+ $ this ->assertEquals ('replytoken ' , $ event ->getReplyToken ());
437+ $ this ->assertEquals ('location ' , $ event ->getMessageType ());
438+ $ this ->assertEquals ('label ' , $ event ->getTitle ());
439+ $ this ->assertNull ($ event ->getAddress ());
440+ $ this ->assertEquals ('-34.12 ' , $ event ->getLatitude ());
441+ $ this ->assertEquals ('134.23 ' , $ event ->getLongitude ());
442+ }
443+
444+ {
445+ // sticker
446+ $ event = $ events [8 ];
389447 $ this ->assertInstanceOf ('LINE\LINEBot\Event\MessageEvent\StickerMessage ' , $ event );
390448 /** @var StickerMessage $event */
391449 $ this ->assertEquals ('replytoken ' , $ event ->getReplyToken ());
@@ -396,39 +454,39 @@ public function testParseEventRequest()
396454
397455 {
398456 // follow
399- $ event = $ events [7 ];
457+ $ event = $ events [9 ];
400458 $ this ->assertInstanceOf ('LINE\LINEBot\Event\FollowEvent ' , $ event );
401459 /** @var FollowEvent $event */
402460 $ this ->assertEquals ('replytoken ' , $ event ->getReplyToken ());
403461 }
404462
405463 {
406464 // unfollow
407- $ event = $ events [8 ];
465+ $ event = $ events [10 ];
408466 $ this ->assertInstanceOf ('LINE\LINEBot\Event\UnfollowEvent ' , $ event );
409467 /** @var UnfollowEvent $event */
410468 $ this ->assertTrue ($ event ->getReplyToken () === null );
411469 }
412470
413471 {
414472 // join
415- $ event = $ events [9 ];
473+ $ event = $ events [11 ];
416474 $ this ->assertInstanceOf ('LINE\LINEBot\Event\JoinEvent ' , $ event );
417475 /** @var JoinEvent $event */
418476 $ this ->assertEquals ('replytoken ' , $ event ->getReplyToken ());
419477 }
420478
421479 {
422480 // leave
423- $ event = $ events [10 ];
481+ $ event = $ events [12 ];
424482 $ this ->assertInstanceOf ('LINE\LINEBot\Event\LeaveEvent ' , $ event );
425483 /** @var LeaveEvent $event */
426484 $ this ->assertTrue ($ event ->getReplyToken () === null );
427485 }
428486
429487 {
430488 // postback
431- $ event = $ events [11 ];
489+ $ event = $ events [13 ];
432490 $ this ->assertInstanceOf ('LINE\LINEBot\Event\PostbackEvent ' , $ event );
433491 /** @var PostbackEvent $event */
434492 $ this ->assertEquals ('replytoken ' , $ event ->getReplyToken ());
@@ -438,7 +496,7 @@ public function testParseEventRequest()
438496
439497 {
440498 // beacon
441- $ event = $ events [12 ];
499+ $ event = $ events [14 ];
442500 $ this ->assertInstanceOf ('LINE\LINEBot\Event\BeaconDetectionEvent ' , $ event );
443501 /** @var BeaconDetectionEvent $event */
444502 $ this ->assertEquals ('replytoken ' , $ event ->getReplyToken ());
@@ -449,7 +507,7 @@ public function testParseEventRequest()
449507
450508 {
451509 // unknown event (event source: user)
452- $ event = $ events [13 ];
510+ $ event = $ events [15 ];
453511 $ this ->assertInstanceOf ('LINE\LINEBot\Event\UnknownEvent ' , $ event );
454512 /** @var UnknownEvent $event */
455513 $ this ->assertEquals ('__unknown__ ' , $ event ->getType ());
@@ -463,7 +521,7 @@ public function testParseEventRequest()
463521
464522 {
465523 // unknown event (event source: unknown)
466- $ event = $ events [14 ];
524+ $ event = $ events [16 ];
467525 $ this ->assertInstanceOf ('LINE\LINEBot\Event\UnknownEvent ' , $ event );
468526 /** @var UnknownEvent $event */
469527 $ this ->assertEquals ('__unknown__ ' , $ event ->getType ());
@@ -476,7 +534,7 @@ public function testParseEventRequest()
476534
477535 {
478536 // message event & unknown message event
479- $ event = $ events [15 ];
537+ $ event = $ events [17 ];
480538 $ this ->assertInstanceOf ('LINE\LINEBot\Event\MessageEvent ' , $ event );
481539 $ this ->assertInstanceOf ('LINE\LINEBot\Event\MessageEvent\UnknownMessage ' , $ event );
482540 /** @var UnknownMessage $event */
@@ -485,7 +543,7 @@ public function testParseEventRequest()
485543
486544 {
487545 // file message
488- $ event = $ events [16 ];
546+ $ event = $ events [18 ];
489547 $ this ->assertInstanceOf ('LINE\LINEBot\Event\MessageEvent ' , $ event );
490548 $ this ->assertInstanceOf ('LINE\LINEBot\Event\MessageEvent\FileMessage ' , $ event );
491549 /** @var FileMessage $event */
@@ -497,7 +555,7 @@ public function testParseEventRequest()
497555
498556 {
499557 // postback date
500- $ event = $ events [17 ];
558+ $ event = $ events [19 ];
501559 $ this ->assertInstanceOf ('LINE\LINEBot\Event\PostbackEvent ' , $ event );
502560 /** @var PostbackEvent $event */
503561 $ this ->assertEquals ('replytoken ' , $ event ->getReplyToken ());
@@ -507,7 +565,7 @@ public function testParseEventRequest()
507565
508566 {
509567 // postback time
510- $ event = $ events [18 ];
568+ $ event = $ events [20 ];
511569 $ this ->assertInstanceOf ('LINE\LINEBot\Event\PostbackEvent ' , $ event );
512570 /** @var PostbackEvent $event */
513571 $ this ->assertEquals ('replytoken ' , $ event ->getReplyToken ());
@@ -517,7 +575,7 @@ public function testParseEventRequest()
517575
518576 {
519577 // postback datetime
520- $ event = $ events [19 ];
578+ $ event = $ events [21 ];
521579 $ this ->assertInstanceOf ('LINE\LINEBot\Event\PostbackEvent ' , $ event );
522580 /** @var PostbackEvent $event */
523581 $ this ->assertEquals ('replytoken ' , $ event ->getReplyToken ());
0 commit comments