Fixes to ensure testing works again
Added LDIF Import testing
This commit is contained in:
parent
2ce0ed8974
commit
6c501cc29d
43
.env.testing
43
.env.testing
@ -1,50 +1,17 @@
|
|||||||
APP_NAME=Laravel
|
APP_NAME=Laravel
|
||||||
APP_ENV=dev
|
APP_ENV=local
|
||||||
APP_KEY=base64:KvIecx8zoy6RjcbJM8s98ZKs9IDGUHFVqBRn3Awfmso=
|
APP_KEY=
|
||||||
APP_DEBUG=true
|
APP_DEBUG=true
|
||||||
APP_URL=http://localhost
|
APP_URL=http://localhost
|
||||||
|
|
||||||
LOG_CHANNEL=stack
|
LOG_CHANNEL=stderr
|
||||||
|
|
||||||
DB_CONNECTION=mysql
|
CACHE_DRIVER=array
|
||||||
DB_HOST=127.0.0.1
|
|
||||||
DB_PORT=3306
|
|
||||||
DB_DATABASE=homestead
|
|
||||||
DB_USERNAME=homestead
|
|
||||||
DB_PASSWORD=secret
|
|
||||||
|
|
||||||
BROADCAST_DRIVER=log
|
|
||||||
CACHE_DRIVER=file
|
|
||||||
QUEUE_CONNECTION=sync
|
QUEUE_CONNECTION=sync
|
||||||
SESSION_DRIVER=file
|
SESSION_DRIVER=file
|
||||||
SESSION_LIFETIME=120
|
SESSION_LIFETIME=120
|
||||||
|
|
||||||
REDIS_HOST=127.0.0.1
|
LDAP_HOST=openldap
|
||||||
REDIS_PASSWORD=null
|
|
||||||
REDIS_PORT=6379
|
|
||||||
|
|
||||||
MAIL_DRIVER=smtp
|
|
||||||
MAIL_HOST=smtp.mailtrap.io
|
|
||||||
MAIL_PORT=2525
|
|
||||||
MAIL_USERNAME=null
|
|
||||||
MAIL_PASSWORD=null
|
|
||||||
MAIL_ENCRYPTION=null
|
|
||||||
|
|
||||||
AWS_ACCESS_KEY_ID=
|
|
||||||
AWS_SECRET_ACCESS_KEY=
|
|
||||||
AWS_DEFAULT_REGION=us-east-1
|
|
||||||
AWS_BUCKET=
|
|
||||||
|
|
||||||
PUSHER_APP_ID=
|
|
||||||
PUSHER_APP_KEY=
|
|
||||||
PUSHER_APP_SECRET=
|
|
||||||
PUSHER_APP_CLUSTER=mt1
|
|
||||||
|
|
||||||
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
|
|
||||||
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
|
||||||
|
|
||||||
LDAP_HOST=test_ldap
|
|
||||||
LDAP_PORT=389
|
|
||||||
LDAP_BASE_DN="dc=Test"
|
LDAP_BASE_DN="dc=Test"
|
||||||
LDAP_USERNAME="cn=admin,dc=Test"
|
LDAP_USERNAME="cn=admin,dc=Test"
|
||||||
LDAP_PASSWORD="test"
|
LDAP_PASSWORD="test"
|
||||||
|
@ -20,6 +20,6 @@ class GetBaseDNTest extends TestCase
|
|||||||
|
|
||||||
$this->assertIsObject($o);
|
$this->assertIsObject($o);
|
||||||
$this->assertCount(6,$o->toArray());
|
$this->assertCount(6,$o->toArray());
|
||||||
$this->assertEquals('dc=Test',$o->first()->getDn());
|
$this->assertEquals('c=AU',$o->first()->getDn());
|
||||||
}
|
}
|
||||||
}
|
}
|
48
tests/Feature/ImportTest.php
Normal file
48
tests/Feature/ImportTest.php
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tests\Feature;
|
||||||
|
|
||||||
|
use Illuminate\Http\UploadedFile;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Crypt;
|
||||||
|
use Tests\TestCase;
|
||||||
|
|
||||||
|
class ImportTest extends TestCase
|
||||||
|
{
|
||||||
|
public function testLDIF_Import()
|
||||||
|
{
|
||||||
|
$dn = 'cn=Bart Simpson,ou=People,o=Simpsons';
|
||||||
|
$import_file = __DIR__.'/data/ldif-import.ldif';
|
||||||
|
|
||||||
|
$this->assertTrue($this->login());
|
||||||
|
$this->assertTrue(Auth::check());
|
||||||
|
$this->actingAs(Auth::user());
|
||||||
|
$this->assertFalse(config('ldap.cache.enabled'));
|
||||||
|
|
||||||
|
// Check that it exists
|
||||||
|
$this->assertEquals($dn,$x=config('server')->fetch($dn));
|
||||||
|
$this->assertTrue($x->exists);
|
||||||
|
|
||||||
|
// Delete the entry
|
||||||
|
$x->delete();
|
||||||
|
$this->assertEquals(NULL,config('server')->fetch($dn));
|
||||||
|
|
||||||
|
$file = new UploadedFile($import_file,'ldif-import.ldif',null,null,true);
|
||||||
|
|
||||||
|
$response = $this
|
||||||
|
->actingAs(Auth::user())
|
||||||
|
->from('/import')
|
||||||
|
->post('/import/process/ldif',[
|
||||||
|
'_token' => csrf_token(),
|
||||||
|
'key'=>Crypt::encryptString('*import|_NOP'),
|
||||||
|
'file' => $file,
|
||||||
|
]);
|
||||||
|
|
||||||
|
//$response->dump();
|
||||||
|
$response->assertSuccessful();
|
||||||
|
|
||||||
|
// Check that it hsa been created
|
||||||
|
$this->assertEquals($dn,$x=config('server')->fetch($dn));
|
||||||
|
$this->assertTrue($x->exists);
|
||||||
|
}
|
||||||
|
}
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
namespace Tests\Feature;
|
namespace Tests\Feature;
|
||||||
|
|
||||||
use LdapRecord\Container;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use LdapRecord\Testing\DirectoryFake;
|
use Illuminate\Support\Facades\Session;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class LoginTest extends TestCase
|
class LoginTest extends TestCase
|
||||||
@ -18,12 +18,10 @@ class LoginTest extends TestCase
|
|||||||
|
|
||||||
public function test_admin_dn_login()
|
public function test_admin_dn_login()
|
||||||
{
|
{
|
||||||
$username = 'cn=Admin,dc=Test';
|
$this->assertTrue($this->login());
|
||||||
$password = 'test';
|
$this->assertTrue(Auth::check());
|
||||||
|
|
||||||
//DirectoryFake::setup();
|
$this->assertTrue(Session::has('username_encrypt'));
|
||||||
|
$this->assertTrue(Session::has('password_encrypt'));
|
||||||
$connection = Container::getDefaultConnection();
|
|
||||||
$this->assertTrue($connection->auth()->attempt($username,$password));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
83
tests/Feature/data/ldif-import.ldif
Normal file
83
tests/Feature/data/ldif-import.ldif
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
# LDIF Export for cn=Bart Simpson,ou=People,o=Simpsons
|
||||||
|
# Server: LDAP Server (ldap://ldap:389)
|
||||||
|
# Total Entries: 1
|
||||||
|
#
|
||||||
|
# Generated by PLA (http://localhost) on January 12, 2024 12:39 pm
|
||||||
|
# Exported by Anonymous
|
||||||
|
# Version: v2.0.0-dev-00000000
|
||||||
|
|
||||||
|
version: 1
|
||||||
|
# Entry 1: cn=Bart Simpson,ou=People,o=Simpsons
|
||||||
|
dn: cn=Bart Simpson,ou=People,o=Simpsons
|
||||||
|
audio: test
|
||||||
|
cn: Bart Simpson
|
||||||
|
gidNumber: 1000
|
||||||
|
givenName: Bart
|
||||||
|
homeDirectory: /home/users/simpsons/bart
|
||||||
|
jpegPhoto:: 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
|
||||||
|
l: Springfield
|
||||||
|
mail: bart.simpson@example.com
|
||||||
|
o: The Simpsons
|
||||||
|
objectClass: inetOrgPerson
|
||||||
|
objectClass: posixAccount
|
||||||
|
objectClass: top
|
||||||
|
objectClass: shadowAccount
|
||||||
|
sn: Simpson
|
||||||
|
st: 742 Evergreen Terrace
|
||||||
|
telephoneNumber: +1 939 555 3126
|
||||||
|
uid: bart
|
||||||
|
uidNumber: 1000
|
||||||
|
userPassword: eatmyshorts
|
@ -3,11 +3,21 @@
|
|||||||
namespace Tests;
|
namespace Tests;
|
||||||
|
|
||||||
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
|
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Config;
|
||||||
|
|
||||||
|
use App\Classes\LDAP\Server;
|
||||||
|
|
||||||
abstract class TestCase extends BaseTestCase
|
abstract class TestCase extends BaseTestCase
|
||||||
{
|
{
|
||||||
use CreatesApplication;
|
use CreatesApplication;
|
||||||
|
|
||||||
|
protected function setUp(): void
|
||||||
|
{
|
||||||
|
parent::setUp();
|
||||||
|
Config::set('server',new Server());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hack to get testing working
|
* Hack to get testing working
|
||||||
*/
|
*/
|
||||||
@ -19,4 +29,15 @@ abstract class TestCase extends BaseTestCase
|
|||||||
app()->instance('config', $config);
|
app()->instance('config', $config);
|
||||||
app()->instance('events', $events);
|
app()->instance('events', $events);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function login(): bool
|
||||||
|
{
|
||||||
|
//$username = 'cn=AdminUser,dc=Test';
|
||||||
|
$username = 'admin';
|
||||||
|
$password = 'password';
|
||||||
|
|
||||||
|
$this->post('/login',['uid'=>$username,'password'=>$password]);
|
||||||
|
|
||||||
|
return Auth::check() && (Auth::user()->getDN() === 'cn=AdminUser,dc=Test');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user