Add an icon to the notification API

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2016-10-07 17:00:24 +02:00
parent 7264d20152
commit c77933ca22
No known key found for this signature in database
GPG key ID: E166FD8976B3BAC8
3 changed files with 76 additions and 12 deletions

View file

@ -242,7 +242,7 @@ class Notification implements INotification {
/**
* @param string $subject
* @return $this
* @throws \InvalidArgumentException if the subject are invalid
* @throws \InvalidArgumentException if the subject is invalid
* @since 8.2.0
*/
public function setParsedSubject($subject) {
@ -300,7 +300,7 @@ class Notification implements INotification {
/**
* @param string $message
* @return $this
* @throws \InvalidArgumentException if the message are invalid
* @throws \InvalidArgumentException if the message is invalid
* @since 8.2.0
*/
public function setParsedMessage($message) {
@ -322,7 +322,7 @@ class Notification implements INotification {
/**
* @param string $link
* @return $this
* @throws \InvalidArgumentException if the link are invalid
* @throws \InvalidArgumentException if the link is invalid
* @since 8.2.0
*/
public function setLink($link) {
@ -341,6 +341,28 @@ class Notification implements INotification {
return $this->link;
}
/**
* @param string $icon
* @return $this
* @throws \InvalidArgumentException if the icon is invalid
* @since 9.2.0
*/
public function setIcon($icon) {
if (!is_string($icon) || $icon === '' || isset($icon[4000])) {
throw new \InvalidArgumentException('The given icon is invalid');
}
$this->icon = $icon;
return $this;
}
/**
* @return string
* @since 9.2.0
*/
public function getIcon() {
return $this->icon;
}
/**
* @return IAction
* @since 8.2.0
@ -352,7 +374,7 @@ class Notification implements INotification {
/**
* @param IAction $action
* @return $this
* @throws \InvalidArgumentException if the action are invalid
* @throws \InvalidArgumentException if the action is invalid
* @since 8.2.0
*/
public function addAction(IAction $action) {
@ -383,7 +405,7 @@ class Notification implements INotification {
/**
* @param IAction $action
* @return $this
* @throws \InvalidArgumentException if the action are invalid
* @throws \InvalidArgumentException if the action is invalid
* @since 8.2.0
*/
public function addParsedAction(IAction $action) {

View file

@ -32,7 +32,7 @@ interface INotification {
/**
* @param string $app
* @return $this
* @throws \InvalidArgumentException if the app id are invalid
* @throws \InvalidArgumentException if the app id is invalid
* @since 9.0.0
*/
public function setApp($app);
@ -46,7 +46,7 @@ interface INotification {
/**
* @param string $user
* @return $this
* @throws \InvalidArgumentException if the user id are invalid
* @throws \InvalidArgumentException if the user id is invalid
* @since 9.0.0
*/
public function setUser($user);
@ -116,7 +116,7 @@ interface INotification {
/**
* @param string $subject
* @return $this
* @throws \InvalidArgumentException if the subject are invalid
* @throws \InvalidArgumentException if the subject is invalid
* @since 9.0.0
*/
public function setParsedSubject($subject);
@ -151,7 +151,7 @@ interface INotification {
/**
* @param string $message
* @return $this
* @throws \InvalidArgumentException if the message are invalid
* @throws \InvalidArgumentException if the message is invalid
* @since 9.0.0
*/
public function setParsedMessage($message);
@ -165,7 +165,7 @@ interface INotification {
/**
* @param string $link
* @return $this
* @throws \InvalidArgumentException if the link are invalid
* @throws \InvalidArgumentException if the link is invalid
* @since 9.0.0
*/
public function setLink($link);
@ -176,6 +176,20 @@ interface INotification {
*/
public function getLink();
/**
* @param string $icon
* @return $this
* @throws \InvalidArgumentException if the icon is invalid
* @since 9.2.0
*/
public function setIcon($icon);
/**
* @return string
* @since 9.2.0
*/
public function getIcon();
/**
* @return IAction
* @since 9.0.0
@ -185,7 +199,7 @@ interface INotification {
/**
* @param IAction $action
* @return $this
* @throws \InvalidArgumentException if the action are invalid
* @throws \InvalidArgumentException if the action is invalid
* @since 9.0.0
*/
public function addAction(IAction $action);
@ -199,7 +213,7 @@ interface INotification {
/**
* @param IAction $action
* @return $this
* @throws \InvalidArgumentException if the action are invalid
* @throws \InvalidArgumentException if the action is invalid
* @since 9.0.0
*/
public function addParsedAction(IAction $action);

View file

@ -386,6 +386,34 @@ class NotificationTest extends TestCase {
$this->notification->setLink($link);
}
public function dataSetIcon() {
return $this->dataValidString(4000);
}
/**
* @dataProvider dataSetIcon
* @param string $icon
*/
public function testSetIcon($icon) {
$this->assertSame('', $this->notification->getIcon());
$this->assertSame($this->notification, $this->notification->setIcon($icon));
$this->assertSame($icon, $this->notification->getIcon());
}
public function dataSetIconInvalid() {
return $this->dataInvalidString(4000);
}
/**
* @dataProvider dataSetIconInvalid
* @param mixed $icon
*
* @expectedException \InvalidArgumentException
*/
public function testSetIconInvalid($icon) {
$this->notification->setIcon($icon);
}
public function testCreateAction() {
$action = $this->notification->createAction();
$this->assertInstanceOf('OCP\Notification\IAction', $action);