diff options
-rw-r--r-- | tests/unit/UnitTestCase.php | 10 | ||||
-rw-r--r-- | tests/unit/includes/AccountTest.php | 22 | ||||
-rw-r--r-- | tests/unit/includes/dba/_files/config.yml | 13 |
3 files changed, 39 insertions, 6 deletions
diff --git a/tests/unit/UnitTestCase.php b/tests/unit/UnitTestCase.php index b98845985..97ac1576e 100644 --- a/tests/unit/UnitTestCase.php +++ b/tests/unit/UnitTestCase.php @@ -78,8 +78,11 @@ class UnitTestCase extends TestCase { $this->in_transaction = \DBA::$dba->db->beginTransaction(); $this->loadFixtures(); - } + + // Make sure app config is reset and loaded from fixtures + \App::$config = array(); + \Zotlabs\Lib\Config::Load('system'); } protected function tearDown() : void { @@ -116,10 +119,6 @@ class UnitTestCase extends TestCase { $table_name = basename($file, '.yml'); $this->fixtures[$table_name] = yaml_parse_file($file)[$table_name]; - //echo "\n[*] Loaded fixture '{$table_name}':\n"; - // . print_r($this->fixtures[$table_name], true) - // . PHP_EOL; - foreach ($this->fixtures[$table_name] as $entry) { $query = 'INSERT INTO ' . dbesc($table_name) . '(' . implode(',', array_keys($entry)) @@ -127,7 +126,6 @@ class UnitTestCase extends TestCase { . implode(',', array_map(fn($val) => "'{$val}'", array_values($entry))) . ')'; - //print_r($query); q($query); } } diff --git a/tests/unit/includes/AccountTest.php b/tests/unit/includes/AccountTest.php index d123a0c70..af5bcd3c1 100644 --- a/tests/unit/includes/AccountTest.php +++ b/tests/unit/includes/AccountTest.php @@ -9,4 +9,26 @@ class AccountTest extends Zotlabs\Tests\Unit\UnitTestCase { $this->assertNotFalse($account); $this->assertEquals($this->fixtures['account'][0]['account_email'], $account['account_email']); } + + /** + * Test the `check_account_email` function. + * + * @dataProvider check_account_email_provider + */ + public function test_check_account_email(string $email, array $expected) { + $this->assertEquals($expected, check_account_email($email)); + } + + function check_account_email_provider() : array { + return [ + // Empty and valid emails return the same result + ['', ['error' => false, 'message' => '']], + ['newuser@example.com', ['error' => false, 'message' => '']], + + // Check emails not valid for various readons + ['not_an_email', ['error' => true, 'message' => 'The provided email address is not valid']], + ['baduser@example.com', ['error' => true, 'message' => 'The provided email domain is not among those allowed on this site']], + ['hubzilla@example.com', ['error' => true, 'message' => 'The provided email address is already registered at this site']], + ]; + } } diff --git a/tests/unit/includes/dba/_files/config.yml b/tests/unit/includes/dba/_files/config.yml new file mode 100644 index 000000000..80b9ba12f --- /dev/null +++ b/tests/unit/includes/dba/_files/config.yml @@ -0,0 +1,13 @@ +--- +config: + - + id: 1 + cat: system + k: do_not_check_dns + v: true + - + id: 2 + cat: system + k: not_allowed_email + v: 'baduser@example.com,baddomain.com,*.evil.org' + |