public function testIsRegisteringAppleDeviceWithPayload()
 {
     $client = $this->getClientMock(new Response(200));
     $device = new AppleDevice('123456789');
     $device->setAlias('Luke Skywalker')->addTag('republic')->addTag('pilot')->setBadge(1)->setQuietTime('22:00', '23:00')->setTimezone('America/Sao_Paulo');
     $client->register($device);
     $request = $this->getLastMockedRequest();
     $this->assertEquals('go.urbanairship.com', $request->getHost());
     $this->assertEquals('/api/device_tokens/123456789/', $request->getPath());
     $this->assertEquals('PUT', $request->getMethod());
     $this->assertEquals('abc', $request->getUsername());
     $this->assertEquals('xyz', $request->getPassword());
     $this->assertEquals('application/json', $request->getHeader('Content-Type', true));
     $this->assertEquals('{"alias":"Luke Skywalker","tags":["republic","pilot"],"badge":1,"quiettime":{"start":"22:00","end":"23:00"},"tz":"America\\/Sao_Paulo"}', $request->getBody()->__toString());
 }
Example #2
0
 protected function getDevicePage($url)
 {
     $data = $this->get($url)->send()->json();
     $devices = array();
     $devices['device_tokens'] = array();
     foreach ($data['device_tokens'] as $item) {
         $device = new AppleDevice($item['device_token']);
         $device->setActive($item['active']);
         $device->setTags($item['tags']);
         $device->setAlias($item['alias']);
         $devices['device_tokens'][] = $device;
     }
     $devices['device_tokens_count'] = $data['device_tokens_count'];
     $devices['active_device_tokens_count'] = $data['active_device_tokens_count'];
     if (isset($data['next_page'])) {
         $output = $this->getDevicePage($data['next_page']);
         $devices['device_tokens'] = array_merge($devices['device_tokens'], $output['device_tokens']);
     }
     return $devices;
 }
Example #3
0
 public function testIsBatchPushing()
 {
     $client = $this->getClientMock(new Response(200));
     $device = new AppleDevice('123456789');
     $device->setAlias('Luke Skywalker')->addTag('republic')->addTag('pilot');
     $notification = new AppleNotification();
     $notification->addDevice($device);
     $notification->setAlert('Hey dude!');
     $notification->setBadge(1);
     $notification->setSound('cat.caf');
     $notification->addTag('sci-fi')->addTag('starwars');
     $notification->setAlias('Test');
     $notification2 = new AppleNotification();
     $notification2->addDevice($device);
     $notification2->setAlert('Hey girl!');
     $notification2->setBadge(1);
     $batch = new BatchPush();
     $batch->addNotification($notification)->addNotification($notification2);
     $client->push($batch);
     $request = $this->getLastMockedRequest();
     $this->assertEquals('go.urbanairship.com', $request->getHost());
     $this->assertEquals('/api/push/batch/', $request->getPath());
     $this->assertEquals('POST', $request->getMethod());
     $this->assertEquals('abc', $request->getUsername());
     $this->assertEquals('xyz', $request->getPassword());
     $this->assertEquals('application/json', $request->getHeader('Content-Type', true));
     $this->assertEquals('[{"device_tokens":["123456789"],"aliases":"Test","tags":["sci-fi","starwars"],"aps":{"badge":1,"alert":"Hey dude!","sound":"cat.caf"}},{"device_tokens":["123456789"],"aps":{"badge":1,"alert":"Hey girl!"}}]', $request->getBody()->__toString());
 }