|
16 | 16 | use OCA\AppAPI\Service\UI\StylesService; |
17 | 17 | use OCA\AppAPI\Service\UI\TopMenuService; |
18 | 18 | use OCP\AppFramework\Http; |
| 19 | +use OCP\AppFramework\OCS\OCSBadRequestException; |
19 | 20 | use OCP\AppFramework\OCS\OCSNotFoundException; |
20 | 21 | use OCP\IRequest; |
21 | 22 | use OCP\Server; |
@@ -193,6 +194,38 @@ public function testFileActionsV2HasV2Version(): void { |
193 | 194 | self::assertSame('image', $data['mime']); |
194 | 195 | self::assertSame('31', (string)$data['permissions']); |
195 | 196 | self::assertSame('2.0', $data['version']); |
| 197 | + self::assertNull($data['default_action']); |
| 198 | + } |
| 199 | + |
| 200 | + public function testFileActionsV2DefaultActionRoundTrip(): void { |
| 201 | + $this->controller->registerFileActionMenuV2( |
| 202 | + name: 'ui_action_v2', displayName: 'V2 Action', actionHandler: '/handler2', |
| 203 | + icon: '', mime: 'image', permissions: 31, order: 0, defaultAction: 'default', |
| 204 | + ); |
| 205 | + $data = self::asArray($this->controller->getFileActionMenu('ui_action_v2')->getData()); |
| 206 | + self::assertSame('default', $data['default_action']); |
| 207 | + |
| 208 | + $this->controller->registerFileActionMenuV2( |
| 209 | + name: 'ui_action_v2', displayName: 'V2 Action', actionHandler: '/handler2', |
| 210 | + icon: '', mime: 'image', permissions: 31, order: 0, defaultAction: 'hidden', |
| 211 | + ); |
| 212 | + $data = self::asArray($this->controller->getFileActionMenu('ui_action_v2')->getData()); |
| 213 | + self::assertSame('hidden', $data['default_action']); |
| 214 | + |
| 215 | + $this->controller->registerFileActionMenuV2( |
| 216 | + name: 'ui_action_v2', displayName: 'V2 Action', actionHandler: '/handler2', |
| 217 | + icon: '', mime: 'image', permissions: 31, order: 0, defaultAction: '', |
| 218 | + ); |
| 219 | + $data = self::asArray($this->controller->getFileActionMenu('ui_action_v2')->getData()); |
| 220 | + self::assertNull($data['default_action']); |
| 221 | + } |
| 222 | + |
| 223 | + public function testFileActionsV2RejectsUnknownDefaultAction(): void { |
| 224 | + $this->expectException(OCSBadRequestException::class); |
| 225 | + $this->controller->registerFileActionMenuV2( |
| 226 | + name: 'ui_action_v2', displayName: 'V2 Action', actionHandler: '/handler2', |
| 227 | + icon: '', mime: 'image', permissions: 31, order: 0, defaultAction: 'bogus', |
| 228 | + ); |
196 | 229 | } |
197 | 230 |
|
198 | 231 | public function testInitialStateRoundTrip(): void { |
|
0 commit comments