Page MenuHomePhorge

D5202.1775260419.diff
No OneTemporary

Authored By
Unknown
Size
3 KB
Referenced Files
None
Subscribers
None

D5202.1775260419.diff

diff --git a/src/app/Jobs/User/VerifyJob.php b/src/app/Jobs/User/VerifyJob.php
--- a/src/app/Jobs/User/VerifyJob.php
+++ b/src/app/Jobs/User/VerifyJob.php
@@ -38,7 +38,7 @@
return;
}
- if (\App\Backends\IMAP::verifyAccount($user->email)) {
+ if (\App\Support\Facades\IMAP::verifyAccount($user->email)) {
$user->status |= \App\User::STATUS_IMAP_READY;
$user->status |= \App\User::STATUS_ACTIVE;
$user->save();
diff --git a/src/app/Providers/AppServiceProvider.php b/src/app/Providers/AppServiceProvider.php
--- a/src/app/Providers/AppServiceProvider.php
+++ b/src/app/Providers/AppServiceProvider.php
@@ -18,6 +18,10 @@
{
// This must be here, not in PassportServiceProvider
Passport::ignoreRoutes();
+
+ $this->app->bind('imap',function() {
+ return new \App\Backends\IMAP();
+ });
}
/**
diff --git a/src/app/Support/Facades/IMAP.php b/src/app/Support/Facades/IMAP.php
new file mode 100644
--- /dev/null
+++ b/src/app/Support/Facades/IMAP.php
@@ -0,0 +1,16 @@
+<?php
+
+namespace App\Support\Facades;
+
+use Illuminate\Support\Facades\Facade;
+
+class IMAP extends Facade
+{
+ /**
+ * Get the registered name of the component.
+ */
+ protected static function getFacadeAccessor(): string
+ {
+ return 'imap';
+ }
+}
diff --git a/src/tests/Feature/Jobs/User/VerifyTest.php b/src/tests/Feature/Jobs/User/VerifyTest.php
--- a/src/tests/Feature/Jobs/User/VerifyTest.php
+++ b/src/tests/Feature/Jobs/User/VerifyTest.php
@@ -2,6 +2,7 @@
namespace Tests\Feature\Jobs\User;
+use App\Support\Facades\IMAP;
use App\User;
use Illuminate\Support\Facades\Queue;
use Tests\TestCase;
@@ -34,8 +35,6 @@
/**
* Test job handle
- *
- * @group imap
*/
public function testHandle(): void
{
@@ -46,7 +45,7 @@
$job->handle();
$job->assertFailedWith("User 123 could not be found in the database.");
- // Test existing user
+ // Test existing user (verification successful)
$user = $this->getTestUser('ned@kolab.org');
if ($user->isImapReady()) {
@@ -56,18 +55,23 @@
$this->assertFalse($user->isImapReady());
- for ($i = 0; $i < 10; $i++) {
- $job = new \App\Jobs\User\VerifyJob($user->id);
- $job->handle();
+ IMAP::shouldReceive('verifyAccount')->once()->with($user->email)->andReturn(true);
- if ($user->fresh()->isImapReady()) {
- $this->assertTrue(true);
- return;
- }
+ $job = new \App\Jobs\User\VerifyJob($user->id);
+ $job->handle();
- sleep(1);
- }
+ $user->refresh();
+ $this->assertTrue($user->isImapReady());
+
+ // Test existing user (verification not-successful)
+ $user->status ^= User::STATUS_IMAP_READY;
+ $user->save();
+
+ IMAP::shouldReceive('verifyAccount')->once()->with($user->email)->andReturn(false);
+
+ $job = new \App\Jobs\User\VerifyJob($user->id);
+ $job->handle();
- $this->assertTrue(false, "Unable to verify the IMAP account is set up in time");
+ $this->assertFalse($user->fresh()->isImapReady());
}
}

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 3, 11:53 PM (7 h, 9 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18827322
Default Alt Text
D5202.1775260419.diff (3 KB)

Event Timeline