Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Зуев Егор
/
wiki.dev
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Authored by
Dan Brown
2017-02-04 11:58:42 +0000
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Commit
33a2999a57854495fcea8c1acf1b75b04a28a0bf
33a2999a
1 parent
076693ef
Namespaced tests to align with new laravel default
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
71 additions
and
80 deletions
composer.json
tests/ActivityTrackingTest.php
tests/AttachmentTest.php
tests/Auth/AuthTest.php
tests/Auth/LdapTest.php
tests/Auth/SocialAuthTest.php
tests/BrowserKitTest.php
tests/CreatesApplication.php
tests/Entity/EntitySearchTest.php
tests/Entity/EntityTest.php
tests/Entity/MarkdownTest.php
tests/Entity/PageContentTest.php
tests/Entity/PageDraftTest.php
tests/Entity/SortTest.php
tests/Entity/TagTest.php
tests/ImageTest.php
tests/Permissions/RestrictionsTest.php
tests/Permissions/RolesTest.php
tests/PublicActionTest.php
tests/TestCase.php
tests/UserProfileTest.php
composer.json
View file @
33a2999
...
...
@@ -36,10 +36,9 @@
}
},
"autoload-dev"
:
{
"classmap"
:
[
"tests/TestCase.php"
,
"tests/BrowserKitTest.php"
]
"psr-4"
:
{
"Tests
\\
"
:
"tests/"
}
},
"scripts"
:
{
"post-root-package-install"
:
[
...
...
tests/ActivityTrackingTest.php
View file @
33a2999
<?php
<?php
namespace
Tests
;
class
ActivityTrackingTest
extends
BrowserKitTest
...
...
tests/AttachmentTest.php
View file @
33a2999
<?php
<?php
namespace
Tests
;
class
AttachmentTest
extends
BrowserKitTest
{
...
...
@@ -75,7 +75,6 @@ class AttachmentTest extends BrowserKitTest
{
$page
=
\BookStack\Page
::
first
();
$this
->
asAdmin
();
$admin
=
$this
->
getAdmin
();
$fileName
=
'upload_test_file.txt'
;
$this
->
uploadFile
(
$fileName
,
$page
->
id
);
...
...
tests/Auth/AuthTest.php
View file @
33a2999
<?php
<?php
namespace
Tests
;
use
BookStack\Notifications\ConfirmEmail
;
use
Illuminate\Support\Facades\Notification
;
...
...
@@ -88,7 +88,7 @@ class AuthTest extends BrowserKitTest
->
press
(
'Resend Confirmation Email'
);
// Get confirmation and confirm notification matches
$emailConfirmation
=
DB
::
table
(
'email_confirmations'
)
->
where
(
'user_id'
,
'='
,
$dbUser
->
id
)
->
first
();
$emailConfirmation
=
\
DB
::
table
(
'email_confirmations'
)
->
where
(
'user_id'
,
'='
,
$dbUser
->
id
)
->
first
();
Notification
::
assertSentTo
(
$dbUser
,
ConfirmEmail
::
class
,
function
(
$notification
,
$channels
)
use
(
$emailConfirmation
)
{
return
$notification
->
token
===
$emailConfirmation
->
token
;
});
...
...
@@ -177,7 +177,7 @@ class AuthTest extends BrowserKitTest
->
seePageIs
(
'/settings/users'
);
$userPassword
=
\BookStack\User
::
find
(
$user
->
id
)
->
password
;
$this
->
assertTrue
(
Hash
::
check
(
'newpassword'
,
$userPassword
));
$this
->
assertTrue
(
\
Hash
::
check
(
'newpassword'
,
$userPassword
));
}
public
function
test_user_deletion
()
...
...
@@ -238,7 +238,6 @@ class AuthTest extends BrowserKitTest
Notification
::
assertSentTo
(
$user
,
\BookStack\Notifications\ResetPassword
::
class
);
$n
=
Notification
::
sent
(
$user
,
\BookStack\Notifications\ResetPassword
::
class
);
$reset
=
DB
::
table
(
'password_resets'
)
->
where
(
'email'
,
'='
,
'admin@admin.com'
)
->
first
();
$this
->
visit
(
'/password/reset/'
.
$n
->
first
()
->
token
)
->
see
(
'Reset Password'
)
->
submitForm
(
'Reset Password'
,
[
...
...
tests/Auth/LdapTest.php
View file @
33a2999
<?php
<?php
namespace
Tests
;
use
BookStack\User
;
class
LdapTest
extends
BrowserKitTest
...
...
@@ -12,7 +12,7 @@ class LdapTest extends BrowserKitTest
{
parent
::
setUp
();
app
(
'config'
)
->
set
([
'auth.method'
=>
'ldap'
,
'services.ldap.base_dn'
=>
'dc=ldap,dc=local'
,
'auth.providers.users.driver'
=>
'ldap'
]);
$this
->
mockLdap
=
Mockery
::
mock
(
BookStack\Services\Ldap
::
class
);
$this
->
mockLdap
=
\Mockery
::
mock
(
\
BookStack\Services\Ldap
::
class
);
$this
->
app
[
'BookStack\Services\Ldap'
]
=
$this
->
mockLdap
;
$this
->
mockUser
=
factory
(
User
::
class
)
->
make
();
}
...
...
@@ -22,7 +22,7 @@ class LdapTest extends BrowserKitTest
$this
->
mockLdap
->
shouldReceive
(
'connect'
)
->
once
()
->
andReturn
(
$this
->
resourceId
);
$this
->
mockLdap
->
shouldReceive
(
'setVersion'
)
->
once
();
$this
->
mockLdap
->
shouldReceive
(
'searchAndGetEntries'
)
->
times
(
4
)
->
with
(
$this
->
resourceId
,
config
(
'services.ldap.base_dn'
),
Mockery
::
type
(
'string'
),
Mockery
::
type
(
'array'
))
->
with
(
$this
->
resourceId
,
config
(
'services.ldap.base_dn'
),
\Mockery
::
type
(
'string'
),
\
Mockery
::
type
(
'array'
))
->
andReturn
([
'count'
=>
1
,
0
=>
[
'uid'
=>
[
$this
->
mockUser
->
name
],
'cn'
=>
[
$this
->
mockUser
->
name
],
...
...
@@ -50,7 +50,7 @@ class LdapTest extends BrowserKitTest
$this
->
mockLdap
->
shouldReceive
(
'setVersion'
)
->
once
();
$ldapDn
=
'cn=test-user,dc=test'
.
config
(
'services.ldap.base_dn'
);
$this
->
mockLdap
->
shouldReceive
(
'searchAndGetEntries'
)
->
times
(
2
)
->
with
(
$this
->
resourceId
,
config
(
'services.ldap.base_dn'
),
Mockery
::
type
(
'string'
),
Mockery
::
type
(
'array'
))
->
with
(
$this
->
resourceId
,
config
(
'services.ldap.base_dn'
),
\Mockery
::
type
(
'string'
),
\
Mockery
::
type
(
'array'
))
->
andReturn
([
'count'
=>
1
,
0
=>
[
'cn'
=>
[
$this
->
mockUser
->
name
],
'dn'
=>
$ldapDn
,
...
...
@@ -73,7 +73,7 @@ class LdapTest extends BrowserKitTest
$this
->
mockLdap
->
shouldReceive
(
'connect'
)
->
once
()
->
andReturn
(
$this
->
resourceId
);
$this
->
mockLdap
->
shouldReceive
(
'setVersion'
)
->
once
();
$this
->
mockLdap
->
shouldReceive
(
'searchAndGetEntries'
)
->
times
(
2
)
->
with
(
$this
->
resourceId
,
config
(
'services.ldap.base_dn'
),
Mockery
::
type
(
'string'
),
Mockery
::
type
(
'array'
))
->
with
(
$this
->
resourceId
,
config
(
'services.ldap.base_dn'
),
\Mockery
::
type
(
'string'
),
\
Mockery
::
type
(
'array'
))
->
andReturn
([
'count'
=>
1
,
0
=>
[
'uid'
=>
[
$this
->
mockUser
->
name
],
'cn'
=>
[
$this
->
mockUser
->
name
],
...
...
tests/Auth/SocialAuthTest.php
View file @
33a2999
<?php
<?php
namespace
Tests
;
class
SocialAuthTest
extends
BrowserKitTest
{
...
...
@@ -11,10 +11,10 @@ class SocialAuthTest extends BrowserKitTest
$this
->
setSettings
([
'registration-enabled'
=>
'true'
]);
config
([
'GOOGLE_APP_ID'
=>
'abc123'
,
'GOOGLE_APP_SECRET'
=>
'123abc'
,
'APP_URL'
=>
'http://localhost'
]);
$mockSocialite
=
Mockery
::
mock
(
'Laravel\Socialite\Contracts\Factory'
);
$mockSocialite
=
\
Mockery
::
mock
(
'Laravel\Socialite\Contracts\Factory'
);
$this
->
app
[
'Laravel\Socialite\Contracts\Factory'
]
=
$mockSocialite
;
$mockSocialDriver
=
Mockery
::
mock
(
'Laravel\Socialite\Contracts\Provider'
);
$mockSocialUser
=
Mockery
::
mock
(
'\Laravel\Socialite\Contracts\User'
);
$mockSocialDriver
=
\
Mockery
::
mock
(
'Laravel\Socialite\Contracts\Provider'
);
$mockSocialUser
=
\
Mockery
::
mock
(
'\Laravel\Socialite\Contracts\User'
);
$mockSocialite
->
shouldReceive
(
'driver'
)
->
twice
()
->
with
(
'google'
)
->
andReturn
(
$mockSocialDriver
);
$mockSocialDriver
->
shouldReceive
(
'redirect'
)
->
once
()
->
andReturn
(
redirect
(
'/'
));
...
...
@@ -34,18 +34,16 @@ class SocialAuthTest extends BrowserKitTest
public
function
test_social_login
()
{
$user
=
factory
(
\BookStack\User
::
class
)
->
make
();
config
([
'GOOGLE_APP_ID'
=>
'abc123'
,
'GOOGLE_APP_SECRET'
=>
'123abc'
,
'GITHUB_APP_ID'
=>
'abc123'
,
'GITHUB_APP_SECRET'
=>
'123abc'
,
'APP_URL'
=>
'http://localhost'
]);
$mockSocialite
=
Mockery
::
mock
(
'Laravel\Socialite\Contracts\Factory'
);
$mockSocialite
=
\
Mockery
::
mock
(
'Laravel\Socialite\Contracts\Factory'
);
$this
->
app
[
'Laravel\Socialite\Contracts\Factory'
]
=
$mockSocialite
;
$mockSocialDriver
=
Mockery
::
mock
(
'Laravel\Socialite\Contracts\Provider'
);
$mockSocialUser
=
Mockery
::
mock
(
'\Laravel\Socialite\Contracts\User'
);
$mockSocialDriver
=
\
Mockery
::
mock
(
'Laravel\Socialite\Contracts\Provider'
);
$mockSocialUser
=
\
Mockery
::
mock
(
'\Laravel\Socialite\Contracts\User'
);
$mockSocialUser
->
shouldReceive
(
'getId'
)
->
twice
()
->
andReturn
(
'logintest123'
);
...
...
@@ -68,7 +66,7 @@ class SocialAuthTest extends BrowserKitTest
->
seePageIs
(
'/login'
);
// Test social callback with matching social account
DB
::
table
(
'social_accounts'
)
->
insert
([
\
DB
::
table
(
'social_accounts'
)
->
insert
([
'user_id'
=>
$this
->
getAdmin
()
->
id
,
'driver'
=>
'github'
,
'driver_id'
=>
'logintest123'
...
...
tests/BrowserKitTest.php
View file @
33a2999
<?php
<?php
namespace
Tests
;
use
BookStack\Role
;
use
Illuminate\Contracts\Console\Kernel
;
use
Illuminate\Foundation\Testing\DatabaseTransactions
;
use
Laravel\BrowserKitTesting\TestCase
;
use
Symfony\Component\DomCrawler\Crawler
;
abstract
class
BrowserKitTest
extends
\Laravel\BrowserKitTesting\
TestCase
abstract
class
BrowserKitTest
extends
TestCase
{
use
DatabaseTransactions
;
...
...
@@ -28,7 +31,7 @@ abstract class BrowserKitTest extends \Laravel\BrowserKitTesting\TestCase
{
$app
=
require
__DIR__
.
'/../bootstrap/app.php'
;
$app
->
make
(
Illuminate\Contracts\Console\
Kernel
::
class
)
->
bootstrap
();
$app
->
make
(
Kernel
::
class
)
->
bootstrap
();
return
$app
;
}
...
...
@@ -48,7 +51,7 @@ abstract class BrowserKitTest extends \Laravel\BrowserKitTesting\TestCase
*/
public
function
getAdmin
()
{
if
(
$this
->
admin
===
null
)
{
$adminRole
=
\BookStack\
Role
::
getRole
(
'admin'
);
$adminRole
=
Role
::
getRole
(
'admin'
);
$this
->
admin
=
$adminRole
->
users
->
first
();
}
return
$this
->
admin
;
...
...
@@ -95,9 +98,9 @@ abstract class BrowserKitTest extends \Laravel\BrowserKitTesting\TestCase
protected
function
createEntityChainBelongingToUser
(
$creatorUser
,
$updaterUser
=
false
)
{
if
(
$updaterUser
===
false
)
$updaterUser
=
$creatorUser
;
$book
=
factory
(
BookStack\Book
::
class
)
->
create
([
'created_by'
=>
$creatorUser
->
id
,
'updated_by'
=>
$updaterUser
->
id
]);
$chapter
=
factory
(
BookStack\Chapter
::
class
)
->
create
([
'created_by'
=>
$creatorUser
->
id
,
'updated_by'
=>
$updaterUser
->
id
]);
$page
=
factory
(
BookStack\Page
::
class
)
->
create
([
'created_by'
=>
$creatorUser
->
id
,
'updated_by'
=>
$updaterUser
->
id
,
'book_id'
=>
$book
->
id
]);
$book
=
factory
(
\
BookStack\Book
::
class
)
->
create
([
'created_by'
=>
$creatorUser
->
id
,
'updated_by'
=>
$updaterUser
->
id
]);
$chapter
=
factory
(
\
BookStack\Chapter
::
class
)
->
create
([
'created_by'
=>
$creatorUser
->
id
,
'updated_by'
=>
$updaterUser
->
id
]);
$page
=
factory
(
\
BookStack\Page
::
class
)
->
create
([
'created_by'
=>
$creatorUser
->
id
,
'updated_by'
=>
$updaterUser
->
id
,
'book_id'
=>
$book
->
id
]);
$book
->
chapters
()
->
saveMany
([
$chapter
]);
$chapter
->
pages
()
->
saveMany
([
$page
]);
$restrictionService
=
$this
->
app
[
\BookStack\Services\PermissionService
::
class
];
...
...
@@ -117,7 +120,7 @@ abstract class BrowserKitTest extends \Laravel\BrowserKitTesting\TestCase
protected
function
getEditor
(
$attributes
=
[])
{
$user
=
factory
(
\BookStack\User
::
class
)
->
create
(
$attributes
);
$role
=
\BookStack\
Role
::
getRole
(
'editor'
);
$role
=
Role
::
getRole
(
'editor'
);
$user
->
attachRole
(
$role
);;
return
$user
;
}
...
...
@@ -211,7 +214,6 @@ abstract class BrowserKitTest extends \Laravel\BrowserKitTesting\TestCase
/**
* Check if the page contains the given element.
* @param string $selector
* @return bool
*/
protected
function
pageHasElement
(
$selector
)
{
...
...
@@ -223,7 +225,6 @@ abstract class BrowserKitTest extends \Laravel\BrowserKitTesting\TestCase
/**
* Check if the page contains the given element.
* @param string $selector
* @return bool
*/
protected
function
pageNotHasElement
(
$selector
)
{
...
...
tests/CreatesApplication.php
0 → 100644
View file @
33a2999
<?php
namespace
Tests
;
use
Illuminate\Contracts\Console\Kernel
;
trait
CreatesApplication
{
/**
* Creates the application.
*
* @return \Illuminate\Foundation\Application
*/
public
function
createApplication
()
{
$app
=
require
__DIR__
.
'/../bootstrap/app.php'
;
$app
->
make
(
Kernel
::
class
)
->
bootstrap
();
return
$app
;
}
}
\ No newline at end of file
tests/Entity/EntitySearchTest.php
View file @
33a2999
<?php
<?php
namespace
Tests
;
class
EntitySearchTest
extends
BrowserKitTest
{
...
...
tests/Entity/EntityTest.php
View file @
33a2999
<?php
<?php
namespace
Tests
;
class
EntityTest
extends
BrowserKitTest
{
...
...
tests/Entity/MarkdownTest.php
View file @
33a2999
<?php
<?php
namespace
Tests
;
class
MarkdownTest
extends
BrowserKitTest
{
...
...
tests/Entity/PageContentTest.php
View file @
33a2999
<?php
<?php
namespace
Tests
;
class
PageContentTest
extends
BrowserKitTest
{
...
...
tests/Entity/PageDraftTest.php
View file @
33a2999
<?php
<?php
namespace
Tests
;
class
PageDraftTest
extends
BrowserKitTest
...
...
tests/Entity/SortTest.php
View file @
33a2999
<?php
<?php
namespace
Tests
;
class
SortTest
extends
BrowserKitTest
{
...
...
tests/Entity/TagTest.php
View file @
33a2999
<?php
<?php
namespace
Tests
;
use
BookStack\Tag
;
use
BookStack\Page
;
...
...
tests/ImageTest.php
View file @
33a2999
<?php
<?php
namespace
Tests
;
class
ImageTest
extends
BrowserKitTest
{
...
...
tests/Permissions/RestrictionsTest.php
View file @
33a2999
<?php
<?php
namespace
Tests
;
class
RestrictionsTest
extends
BrowserKitTest
{
...
...
tests/Permissions/RolesTest.php
View file @
33a2999
<?php
<?php
namespace
Tests
;
class
RolesTest
extends
BrowserKitTest
{
...
...
tests/PublicActionTest.php
View file @
33a2999
<?php
<?php
namespace
Tests
;
class
PublicActionTest
extends
BrowserKitTest
{
...
...
tests/TestCase.php
View file @
33a2999
<?php
<?php
namespace
Tests
;
use
Illuminate\Foundation\Testing\DatabaseTransactions
;
use
Symfony\Component\DomCrawler\Crawler
;
use
Illuminate\Foundation\Testing\TestCase
as
BaseTestCase
;
class
TestCase
extends
Illuminate\Foundation\Testing\
TestCase
abstract
class
TestCase
extends
Base
TestCase
{
use
DatabaseTransactions
;
/**
* The base URL of the application.
*
* @var string
*/
public
$baseUrl
=
'http://localhost'
;
/**
* Creates the application.
*
* @return \Illuminate\Foundation\Application
*/
public
function
createApplication
()
{
$app
=
require
__DIR__
.
'/../bootstrap/app.php'
;
$app
->
make
(
Kernel
::
class
)
->
bootstrap
();
return
$app
;
}
}
use
CreatesApplication
;
}
\ No newline at end of file
...
...
tests/UserProfileTest.php
View file @
33a2999
<?php
<?php
namespace
Tests
;
class
UserProfileTest
extends
BrowserKitTest
{
...
...
@@ -55,8 +55,8 @@ class UserProfileTest extends BrowserKitTest
$newUser
=
$this
->
getEditor
();
$this
->
actingAs
(
$newUser
);
$entities
=
$this
->
createEntityChainBelongingToUser
(
$newUser
,
$newUser
);
Activity
::
add
(
$entities
[
'book'
],
'book_update'
,
$entities
[
'book'
]
->
id
);
Activity
::
add
(
$entities
[
'page'
],
'page_create'
,
$entities
[
'book'
]
->
id
);
\
Activity
::
add
(
$entities
[
'book'
],
'book_update'
,
$entities
[
'book'
]
->
id
);
\
Activity
::
add
(
$entities
[
'page'
],
'page_create'
,
$entities
[
'book'
]
->
id
);
$this
->
asAdmin
()
->
visit
(
'/user/'
.
$newUser
->
id
)
->
seeInElement
(
'#recent-activity'
,
'updated book'
)
...
...
@@ -69,8 +69,8 @@ class UserProfileTest extends BrowserKitTest
$newUser
=
$this
->
getEditor
();
$this
->
actingAs
(
$newUser
);
$entities
=
$this
->
createEntityChainBelongingToUser
(
$newUser
,
$newUser
);
Activity
::
add
(
$entities
[
'book'
],
'book_update'
,
$entities
[
'book'
]
->
id
);
Activity
::
add
(
$entities
[
'page'
],
'page_create'
,
$entities
[
'book'
]
->
id
);
\
Activity
::
add
(
$entities
[
'book'
],
'book_update'
,
$entities
[
'book'
]
->
id
);
\
Activity
::
add
(
$entities
[
'page'
],
'page_create'
,
$entities
[
'book'
]
->
id
);
$this
->
asAdmin
()
->
visit
(
'/'
)
->
clickInElement
(
'#recent-activity'
,
$newUser
->
name
)
->
seePageIs
(
'/user/'
.
$newUser
->
id
)
...
...
Please
register
or
sign in
to post a comment