Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
die_coolen_jungs
our_own_cloud_project
Commits
705d208a
Commit
705d208a
authored
Nov 17, 2015
by
Thomas Müller
Browse files
Merge pull request #20539 from owncloud/notification-api-adjustment
Notification api update
parents
56f44a45
40d5d551
Changes
6
Hide whitespace changes
Inline
Side-by-side
lib/private/notification/action.php
View file @
705d208a
...
...
@@ -39,6 +39,9 @@ class Action implements IAction {
/** @var string */
protected
$icon
;
/** @var bool */
protected
$primary
;
/**
* Constructor
*/
...
...
@@ -94,6 +97,27 @@ class Action implements IAction {
return
$this
->
labelParsed
;
}
/**
* @param $primary bool
* @throws \InvalidArgumentException if $primary is invalid
* @since 9.0.0
*/
public
function
setPrimary
(
$primary
)
{
if
(
!
is_bool
(
$primary
))
{
throw
new
\
InvalidArgumentException
(
'The given primary option is invalid'
);
}
$this
->
primary
=
$primary
;
}
/**
* @return bool
* @since 9.0.0
*/
public
function
isPrimary
()
{
return
$this
->
primary
;
}
/**
* @param string $link
* @param string $requestType
...
...
@@ -129,28 +153,6 @@ class Action implements IAction {
return
$this
->
requestType
;
}
/**
* @param string $icon
* @return $this
* @throws \InvalidArgumentException if the icon is invalid
* @since 8.2.0
*/
public
function
setIcon
(
$icon
)
{
if
(
!
is_string
(
$icon
)
||
$icon
===
''
||
isset
(
$icon
[
64
]))
{
throw
new
\
InvalidArgumentException
(
'The given icon is invalid'
);
}
$this
->
icon
=
$icon
;
return
$this
;
}
/**
* @return string
* @since 8.2.0
*/
public
function
getIcon
()
{
return
$this
->
icon
;
}
/**
* @return bool
*/
...
...
lib/private/notification/iaction.php
View file @
705d208a
...
...
@@ -60,6 +60,19 @@ interface IAction {
*/
public
function
getParsedLabel
();
/**
* @param $primary bool
* @throws \InvalidArgumentException if $primary is invalid
* @since 9.0.0
*/
public
function
setPrimary
(
$primary
);
/**
* @return bool
* @since 9.0.0
*/
public
function
isPrimary
();
/**
* @param string $link
* @param string $requestType
...
...
@@ -81,20 +94,6 @@ interface IAction {
*/
public
function
getRequestType
();
/**
* @param string $icon
* @return $this
* @throws \InvalidArgumentException if the icon is invalid
* @since 8.2.0
*/
public
function
setIcon
(
$icon
);
/**
* @return string
* @since 8.2.0
*/
public
function
getIcon
();
/**
* @return bool
* @since 8.2.0
...
...
lib/private/notification/inotification.php
View file @
705d208a
...
...
@@ -179,20 +179,6 @@ interface INotification {
*/
public
function
getLink
();
/**
* @param string $icon
* @return $this
* @throws \InvalidArgumentException if the icon are invalid
* @since 8.2.0
*/
public
function
setIcon
(
$icon
);
/**
* @return string
* @since 8.2.0
*/
public
function
getIcon
();
/**
* @return IAction
* @since 8.2.0
...
...
lib/private/notification/notification.php
View file @
705d208a
...
...
@@ -68,6 +68,12 @@ class Notification implements INotification {
/** @var array */
protected
$actionsParsed
;
/** @var bool */
protected
$hasPrimaryAction
;
/** @var bool */
protected
$hasPrimaryParsedAction
;
/**
* Constructor
*/
...
...
@@ -329,28 +335,6 @@ class Notification implements INotification {
return
$this
->
link
;
}
/**
* @param string $icon
* @return $this
* @throws \InvalidArgumentException if the icon are invalid
* @since 8.2.0
*/
public
function
setIcon
(
$icon
)
{
if
(
!
is_string
(
$icon
)
||
$icon
===
''
||
isset
(
$icon
[
64
]))
{
throw
new
\
InvalidArgumentException
(
'The given icon is invalid'
);
}
$this
->
icon
=
$icon
;
return
$this
;
}
/**
* @return string
* @since 8.2.0
*/
public
function
getIcon
()
{
return
$this
->
icon
;
}
/**
* @return IAction
* @since 8.2.0
...
...
@@ -369,6 +353,15 @@ class Notification implements INotification {
if
(
!
$action
->
isValid
())
{
throw
new
\
InvalidArgumentException
(
'The given action is invalid'
);
}
if
(
$action
->
isPrimary
())
{
if
(
$this
->
hasPrimaryAction
)
{
throw
new
\
InvalidArgumentException
(
'The notification already has a primary action'
);
}
$this
->
hasPrimaryAction
=
true
;
}
$this
->
actions
[]
=
$action
;
return
$this
;
}
...
...
@@ -391,6 +384,15 @@ class Notification implements INotification {
if
(
!
$action
->
isValidParsed
())
{
throw
new
\
InvalidArgumentException
(
'The given parsed action is invalid'
);
}
if
(
$action
->
isPrimary
())
{
if
(
$this
->
hasPrimaryParsedAction
)
{
throw
new
\
InvalidArgumentException
(
'The notification already has a primary action'
);
}
$this
->
hasPrimaryParsedAction
=
true
;
}
$this
->
actionsParsed
[]
=
$action
;
return
$this
;
}
...
...
tests/lib/notification/actiontest.php
View file @
705d208a
...
...
@@ -171,47 +171,6 @@ class ActionTest extends TestCase {
$this
->
action
->
setLink
(
$link
,
$type
);
}
public
function
dataSetIcon
()
{
return
[
[
'test1'
],
[
str_repeat
(
'a'
,
1
)],
[
str_repeat
(
'a'
,
64
)],
];
}
/**
* @dataProvider dataSetIcon
* @param string $icon
*/
public
function
testSetIcon
(
$icon
)
{
$this
->
assertSame
(
''
,
$this
->
action
->
getIcon
());
$this
->
action
->
setIcon
(
$icon
);
$this
->
assertSame
(
$icon
,
$this
->
action
->
getIcon
());
}
public
function
dataSetIconInvalid
()
{
return
[
[
true
],
[
false
],
[
0
],
[
1
],
[
''
],
[
str_repeat
(
'a'
,
65
)],
[[]],
[[
str_repeat
(
'a'
,
65
)]],
];
}
/**
* @dataProvider dataSetIconInvalid
* @param string $icon
*
* @expectedException \InvalidArgumentException
*/
public
function
testSetIconInvalid
(
$icon
)
{
$this
->
action
->
setIcon
(
$icon
);
}
public
function
testIsValid
()
{
$this
->
assertFalse
(
$this
->
action
->
isValid
());
$this
->
assertFalse
(
$this
->
action
->
isValidParsed
());
...
...
tests/lib/notification/notificationtest.php
View file @
705d208a
...
...
@@ -371,34 +371,6 @@ class NotificationTest extends TestCase {
$this
->
notification
->
setLink
(
$link
);
}
public
function
dataSetIcon
()
{
return
$this
->
dataValidString
(
64
);
}
/**
* @dataProvider dataSetIcon
* @param string $icon
*/
public
function
testSetIcon
(
$icon
)
{
$this
->
assertSame
(
''
,
$this
->
notification
->
getIcon
());
$this
->
notification
->
setIcon
(
$icon
);
$this
->
assertSame
(
$icon
,
$this
->
notification
->
getIcon
());
}
public
function
dataSetIconInvalid
()
{
return
$this
->
dataInvalidString
(
64
);
}
/**
* @dataProvider dataSetIconInvalid
* @param mixed $icon
*
* @expectedException \InvalidArgumentException
*/
public
function
testSetIconInvalid
(
$icon
)
{
$this
->
notification
->
setIcon
(
$icon
);
}
public
function
testCreateAction
()
{
$action
=
$this
->
notification
->
createAction
();
$this
->
assertInstanceOf
(
'OC\Notification\IAction'
,
$action
);
...
...
@@ -438,6 +410,24 @@ class NotificationTest extends TestCase {
$this
->
notification
->
addAction
(
$action
);
}
public
function
testAddActionSecondPrimary
()
{
/** @var \OC\Notification\IAction|\PHPUnit_Framework_MockObject_MockObject $action */
$action
=
$this
->
getMockBuilder
(
'OC\Notification\IAction'
)
->
disableOriginalConstructor
()
->
getMock
();
$action
->
expects
(
$this
->
exactly
(
2
))
->
method
(
'isValid'
)
->
willReturn
(
true
);
$action
->
expects
(
$this
->
exactly
(
2
))
->
method
(
'isPrimary'
)
->
willReturn
(
true
);
$this
->
notification
->
addAction
(
$action
);
$this
->
setExpectedException
(
'\InvalidArgumentException'
);
$this
->
notification
->
addAction
(
$action
);
}
public
function
testAddParsedAction
()
{
/** @var \OC\Notification\IAction|\PHPUnit_Framework_MockObject_MockObject $action */
$action
=
$this
->
getMockBuilder
(
'OC\Notification\IAction'
)
...
...
@@ -472,6 +462,24 @@ class NotificationTest extends TestCase {
$this
->
notification
->
addParsedAction
(
$action
);
}
public
function
testAddActionSecondParsedPrimary
()
{
/** @var \OC\Notification\IAction|\PHPUnit_Framework_MockObject_MockObject $action */
$action
=
$this
->
getMockBuilder
(
'OC\Notification\IAction'
)
->
disableOriginalConstructor
()
->
getMock
();
$action
->
expects
(
$this
->
exactly
(
2
))
->
method
(
'isValidParsed'
)
->
willReturn
(
true
);
$action
->
expects
(
$this
->
exactly
(
2
))
->
method
(
'isPrimary'
)
->
willReturn
(
true
);
$this
->
notification
->
addParsedAction
(
$action
);
$this
->
setExpectedException
(
'\InvalidArgumentException'
);
$this
->
notification
->
addParsedAction
(
$action
);
}
public
function
dataIsValid
()
{
return
[
[
false
,
''
,
false
],
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment