Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F117793536
D5202.1775260419.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
3 KB
Referenced Files
None
Subscribers
None
D5202.1775260419.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D5202: IMAP and LDAP Facades (mocking)
Attached
Detach File
Event Timeline