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 * @param string $subject
* @return $this * @return $this
* @throws \InvalidArgumentException if the subject are invalid * @throws \InvalidArgumentException if the subject is invalid
* @since 8.2.0 * @since 8.2.0
*/ */
public function setParsedSubject($subject) { public function setParsedSubject($subject) {
@ -300,7 +300,7 @@ class Notification implements INotification {
/** /**
* @param string $message * @param string $message
* @return $this * @return $this
* @throws \InvalidArgumentException if the message are invalid * @throws \InvalidArgumentException if the message is invalid
* @since 8.2.0 * @since 8.2.0
*/ */
public function setParsedMessage($message) { public function setParsedMessage($message) {
@ -322,7 +322,7 @@ class Notification implements INotification {
/** /**
* @param string $link * @param string $link
* @return $this * @return $this
* @throws \InvalidArgumentException if the link are invalid * @throws \InvalidArgumentException if the link is invalid
* @since 8.2.0 * @since 8.2.0
*/ */
public function setLink($link) { public function setLink($link) {
@ -341,6 +341,28 @@ class Notification implements INotification {
return $this->link; 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 * @return IAction
* @since 8.2.0 * @since 8.2.0
@ -352,7 +374,7 @@ class Notification implements INotification {
/** /**
* @param IAction $action * @param IAction $action
* @return $this * @return $this
* @throws \InvalidArgumentException if the action are invalid * @throws \InvalidArgumentException if the action is invalid
* @since 8.2.0 * @since 8.2.0
*/ */
public function addAction(IAction $action) { public function addAction(IAction $action) {
@ -383,7 +405,7 @@ class Notification implements INotification {
/** /**
* @param IAction $action * @param IAction $action
* @return $this * @return $this
* @throws \InvalidArgumentException if the action are invalid * @throws \InvalidArgumentException if the action is invalid
* @since 8.2.0 * @since 8.2.0
*/ */
public function addParsedAction(IAction $action) { public function addParsedAction(IAction $action) {

View file

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

View file

@ -386,6 +386,34 @@ class NotificationTest extends TestCase {
$this->notification->setLink($link); $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() { public function testCreateAction() {
$action = $this->notification->createAction(); $action = $this->notification->createAction();
$this->assertInstanceOf('OCP\Notification\IAction', $action); $this->assertInstanceOf('OCP\Notification\IAction', $action);