‪TYPO3CMS  ‪main
CreateBackendUserCommandTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use PHPUnit\Framework\Attributes\Test;
22 
24 {
33  protected array ‪$userDefaults = [
34  'username' => 'picard',
35  'password' => 'Engage1701D!',
36  'email' => 'starcommand@example.com',
37  'groups' => '4,8,16',
38  ];
39 
40  protected function ‪setUp(): void
41  {
42  parent::setUp();
43  $this->importCSVDataSet(__DIR__ . '/Fixtures/be_groups_multiple.csv');
44  $this->importCSVDataSet(__DIR__ . '/../Fixtures/be_users.csv');
45  }
46 
47  #[Test]
48  public function ‪userCanBeCreatedWithShortcuts(): void
49  {
50  $result = $this->‪executeConsoleCommand(
51  'backend:user:create -u %s -p %s -e %s -g %s --no-interaction',
52  $this->userDefaults['username'],
53  $this->userDefaults['password'],
54  $this->userDefaults['email'],
55  $this->userDefaults['groups'],
56  );
57 
58  self::assertEquals(0, $result['status']);
59  $this->assertCSVDataSet(__DIR__ . '/Fixtures/Expected/be_users_after_normal.csv');
60  }
61 
62  #[Test]
63  public function ‪userCanBeCreatedWithLongOptions(): void
64  {
65  $result = $this->‪executeConsoleCommand(
66  'backend:user:create --username %s --password %s --email %s --groups %s --no-interaction',
67  $this->userDefaults['username'],
68  $this->userDefaults['password'],
69  $this->userDefaults['email'],
70  $this->userDefaults['groups'],
71  );
72 
73  self::assertEquals(0, $result['status']);
74  $this->assertCSVDataSet(__DIR__ . '/Fixtures/Expected/be_users_after_normal.csv');
75  }
76 
77  #[Test]
78  public function ‪adminUserCanBeCreatedWithShortcuts(): void
79  {
80  $result = $this->‪executeConsoleCommand(
81  'backend:user:create -u %s -p %s -e %s -g %s -a --no-interaction',
82  $this->userDefaults['username'],
83  $this->userDefaults['password'],
84  $this->userDefaults['email'],
85  $this->userDefaults['groups'],
86  );
87 
88  self::assertEquals(0, $result['status']);
89  $this->assertCSVDataSet(__DIR__ . '/Fixtures/Expected/be_users_after_admin.csv');
90  }
91 
92  #[Test]
94  {
95  $result = $this->‪executeConsoleCommand(
96  'backend:user:create --username %s --password %s --email %s --groups %s --admin --no-interaction',
97  $this->userDefaults['username'],
98  $this->userDefaults['password'],
99  $this->userDefaults['email'],
100  $this->userDefaults['groups'],
101  );
102 
103  self::assertEquals(0, $result['status']);
104  $this->assertCSVDataSet(__DIR__ . '/Fixtures/Expected/be_users_after_admin.csv');
105  }
106 
107  #[Test]
109  {
110  $result = $this->‪executeConsoleCommand(
111  'backend:user:create -u %s -p %s -e %s -g %s -m --no-interaction',
112  $this->userDefaults['username'],
113  $this->userDefaults['password'],
114  $this->userDefaults['email'],
115  $this->userDefaults['groups'],
116  );
117 
118  self::assertEquals(0, $result['status']);
119  $this->assertCSVDataSet(__DIR__ . '/Fixtures/Expected/be_users_after_maint.csv');
120  }
121 
122  #[Test]
124  {
125  $result = $this->‪executeConsoleCommand(
126  'backend:user:create --username %s --password %s --email %s --groups %s --maintainer --no-interaction',
127  $this->userDefaults['username'],
128  $this->userDefaults['password'],
129  $this->userDefaults['email'],
130  $this->userDefaults['groups'],
131  );
132 
133  self::assertEquals(0, $result['status']);
134  $this->assertCSVDataSet(__DIR__ . '/Fixtures/Expected/be_users_after_maint.csv');
135  }
136 
137  #[Test]
138  public function ‪emptyUsernameFails(): void
139  {
140  $result = $this->‪executeConsoleCommand(
141  'backend:user:create --username "" --password %s --no-interaction',
142  $this->userDefaults['password'],
143  );
144 
145  self::assertEquals(255, $result['status']);
146  }
147 
148  #[Test]
149  public function ‪existingUsernameFails(): void
150  {
151  $result = $this->‪executeConsoleCommand(
152  'backend:user:create --username %s --password %s --no-interaction',
153  '--username=admin',
154  $this->userDefaults['password'],
155  );
156 
157  self::assertEquals(1, $result['status']);
158  }
159 
160  #[Test]
161  public function ‪weakPasswordFails(): void
162  {
163  // Insert first time
164  $result = $this->‪executeConsoleCommand(
165  'backend:user:create --username %s --password "yes" --no-interaction',
166  $this->userDefaults['username'],
167  );
168 
169  self::assertEquals(255, $result['status']);
170  }
171 
172  #[Test]
173  public function ‪emptyPasswordFails(): void
174  {
175  // Insert first time
176  $result = $this->‪executeConsoleCommand(
177  'backend:user:create --username %s --password "" --no-interaction',
178  $this->userDefaults['username'],
179  );
180 
181  self::assertEquals(255, $result['status']);
182  }
183 
184  #[Test]
185  public function ‪invalidEmailFails(): void
186  {
187  // Insert first time
188  $result = $this->‪executeConsoleCommand(
189  'backend:user:create --username %s --password %s --email "nobody" --no-interaction',
190  $this->userDefaults['username'],
191  $this->userDefaults['password'],
192  );
193 
194  self::assertEquals(255, $result['status']);
195  }
196 
197  #[Test]
198  public function ‪invalidGroupIdFails(): void
199  {
200  // Insert first time
201  $result = $this->‪executeConsoleCommand(
202  'backend:user:create --username %s --password %s --groups "4711" --no-interaction',
203  $this->userDefaults['username'],
204  $this->userDefaults['password'],
205  );
206 
207  self::assertEquals(255, $result['status']);
208  }
209 }
‪TYPO3\CMS\Backend\Tests\Functional\Command\CreateBackendUserCommandTest\existingUsernameFails
‪existingUsernameFails()
Definition: CreateBackendUserCommandTest.php:149
‪TYPO3\CMS\Backend\Tests\Functional\Command\CreateBackendUserCommandTest\emptyPasswordFails
‪emptyPasswordFails()
Definition: CreateBackendUserCommandTest.php:173
‪TYPO3\CMS\Backend\Tests\Functional\Command\CreateBackendUserCommandTest\maintainerUserCanBeCreatedWithLongOptions
‪maintainerUserCanBeCreatedWithLongOptions()
Definition: CreateBackendUserCommandTest.php:123
‪TYPO3\CMS\Backend\Tests\Functional\Command\CreateBackendUserCommandTest\userCanBeCreatedWithShortcuts
‪userCanBeCreatedWithShortcuts()
Definition: CreateBackendUserCommandTest.php:48
‪TYPO3\CMS\Backend\Tests\Functional\Command
Definition: CreateBackendUserCommandTest.php:18
‪TYPO3\CMS\Backend\Tests\Functional\Command\CreateBackendUserCommandTest\emptyUsernameFails
‪emptyUsernameFails()
Definition: CreateBackendUserCommandTest.php:138
‪TYPO3\CMS\Backend\Tests\Functional\Command\CreateBackendUserCommandTest\$userDefaults
‪array $userDefaults
Definition: CreateBackendUserCommandTest.php:33
‪TYPO3\CMS\Backend\Tests\Functional\Command\CreateBackendUserCommandTest\userCanBeCreatedWithLongOptions
‪userCanBeCreatedWithLongOptions()
Definition: CreateBackendUserCommandTest.php:63
‪TYPO3\CMS\Core\Tests\Functional\Command\AbstractCommandTestCase\executeConsoleCommand
‪executeConsoleCommand(string $cmdline,... $args)
Definition: AbstractCommandTestCase.php:25
‪TYPO3\CMS\Backend\Tests\Functional\Command\CreateBackendUserCommandTest\weakPasswordFails
‪weakPasswordFails()
Definition: CreateBackendUserCommandTest.php:161
‪TYPO3\CMS\Backend\Tests\Functional\Command\CreateBackendUserCommandTest\setUp
‪setUp()
Definition: CreateBackendUserCommandTest.php:40
‪TYPO3\CMS\Backend\Tests\Functional\Command\CreateBackendUserCommandTest\adminUserCanBeCreatedWithLongOptions
‪adminUserCanBeCreatedWithLongOptions()
Definition: CreateBackendUserCommandTest.php:93
‪TYPO3\CMS\Backend\Tests\Functional\Command\CreateBackendUserCommandTest
Definition: CreateBackendUserCommandTest.php:24
‪TYPO3\CMS\Backend\Tests\Functional\Command\CreateBackendUserCommandTest\adminUserCanBeCreatedWithShortcuts
‪adminUserCanBeCreatedWithShortcuts()
Definition: CreateBackendUserCommandTest.php:78
‪TYPO3\CMS\Backend\Tests\Functional\Command\CreateBackendUserCommandTest\invalidGroupIdFails
‪invalidGroupIdFails()
Definition: CreateBackendUserCommandTest.php:198
‪TYPO3\CMS\Backend\Tests\Functional\Command\CreateBackendUserCommandTest\invalidEmailFails
‪invalidEmailFails()
Definition: CreateBackendUserCommandTest.php:185
‪TYPO3\CMS\Backend\Tests\Functional\Command\CreateBackendUserCommandTest\maintainerUserCanBeCreatedWithShortcuts
‪maintainerUserCanBeCreatedWithShortcuts()
Definition: CreateBackendUserCommandTest.php:108
‪TYPO3\CMS\Core\Tests\Functional\Command\AbstractCommandTestCase
Definition: AbstractCommandTestCase.php:24