Просмотр исходного кода

Merged r25144, 25145, 25154 from trunk; resolves ZF-12483

git-svn-id: http://framework.zend.com/svn/framework/standard/branches/release-1.12@25155 44c647ce-9c0f-0410-b52a-842ac1e357ba
digitalstruct 13 лет назад
Родитель
Сommit
ca0194d149

+ 5 - 3
library/Zend/Mobile/Push/Apns.php

@@ -55,8 +55,8 @@ class Zend_Mobile_Push_Apns extends Zend_Mobile_Push_Abstract
     protected $_serverUriList = array(
         'ssl://gateway.sandbox.push.apple.com:2195',
         'ssl://gateway.push.apple.com:2195',
-        'ssl://feedback.push.apple.com:2196',
-        'ssl://feedback.sandbox.push.apple.com:2196'
+        'ssl://feedback.sandbox.push.apple.com:2196',
+        'ssl://feedback.push.apple.com:2196'
     );
 
     /**
@@ -302,7 +302,9 @@ class Zend_Mobile_Push_Apns extends Zend_Mobile_Push_Abstract
         if (!empty($alert)) {
             $payload['aps']['alert'] = $alert;
         }
-        $payload['aps']['badge'] = $message->getBadge();
+        if (!is_null($message->getBadge())) {
+            $payload['aps']['badge'] = $message->getBadge();
+        }
         $payload['aps']['sound'] = $message->getSound();
 
         foreach($message->getCustomData() as $k => $v) {

+ 1 - 1
library/Zend/Mobile/Push/Gcm.php

@@ -121,7 +121,7 @@ class Zend_Mobile_Push_Gcm extends Zend_Mobile_Push_Abstract
      * Send Message
      *
      * @param Zend_Mobile_Push_Message_Gcm $message
-     * @return boolean
+     * @return Zend_Mobile_Push_Response_Gcm
      * @throws Zend_Mobile_Push_Exception
      */
     public function send(Zend_Mobile_Push_Message_Abstract $message)

+ 5 - 5
library/Zend/Mobile/Push/Message/Apns.php

@@ -40,7 +40,7 @@ class Zend_Mobile_Push_Message_Apns extends Zend_Mobile_Push_Message_Abstract
      *
      * @var int
      */
-    protected $_badge  = 0;
+    protected $_badge;
 
     /**
      * Alert
@@ -137,7 +137,7 @@ class Zend_Mobile_Push_Message_Apns extends Zend_Mobile_Push_Message_Abstract
      */
     public function getBadge()
     {
-        return (int) $this->_badge;
+        return $this->_badge;
     }
 
     /**
@@ -149,13 +149,13 @@ class Zend_Mobile_Push_Message_Apns extends Zend_Mobile_Push_Message_Abstract
      */
     public function setBadge($badge)
     {
-        if (!is_numeric($badge)) {
+        if (!is_null($badge) && !is_numeric($badge)) {
             throw new Zend_Mobile_Push_Message_Exception('$badge must be an integer');
         }
-        if ($badge < 0) {
+        if (!is_null($badge) && $badge < 0) {
             throw new Zend_Mobile_Push_Message_Exception('$badge must be greater or equal to 0');
         }
-        $this->_badge = (int) $badge;
+        $this->_badge = $badge;
     }
 
     /**

+ 1 - 0
library/Zend/Mobile/Push/Message/Gcm.php

@@ -32,6 +32,7 @@ require_once 'Zend/Mobile/Push/Message/Abstract.php';
  * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
  * @license    http://framework.zend.com/license/new-bsd     New BSD License
  * @version    $Id$
+ * @method     array getToken()
  */
 class Zend_Mobile_Push_Message_Gcm extends Zend_Mobile_Push_Message_Abstract
 {

+ 1 - 1
library/Zend/Mobile/Push/Message/Mpns/Tile.php

@@ -324,7 +324,7 @@ class Zend_Mobile_Push_Message_Mpns_Tile extends Zend_Mobile_Push_Message_Mpns
     {
         $ret = '<?xml version="1.0" encoding="utf-8"?>'
             . '<wp:Notification xmlns:wp="WPNotification">'
-            . '<wp:Tile' . (($this->_tileId) ? 'Id="' . htmlspecialchars($this->_tileId) . '"' : '') . '>'
+            . '<wp:Tile' . (($this->_tileId) ? ' Id="' . htmlspecialchars($this->_tileId) . '"' : '') . '>'
             . '<wp:BackgroundImage>' . htmlspecialchars($this->_backgroundImage) . '</wp:BackgroundImage>'
             . '<wp:Count>' . (int) $this->_count . '</wp:Count>'
             . '<wp:Title>' . htmlspecialchars($this->_title) . '</wp:Title>';

+ 6 - 0
tests/Zend/Mobile/Push/Message/ApnsTest.php

@@ -112,6 +112,12 @@ class Zend_Mobile_Push_Message_ApnsTest extends PHPUnit_Framework_TestCase
         $this->message->setBadge(-5);
     }
 
+    public function testSetBadgeAllowsNull()
+    {
+        $this->message->setBadge(null);
+        $this->assertNull($this->message->getBadge());
+    }
+
     public function testSetExpireReturnsInteger()
     {
         $expire = 100;