mirror of
https://github.com/flextype/flextype.git
synced 2025-08-07 13:46:42 +02:00
feat(tests): improve and rewrite tests
This commit is contained in:
1
tests/fixtures/entries/blog/entry.yaml
vendored
Normal file
1
tests/fixtures/entries/blog/entry.yaml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
title: Blog
|
@@ -1 +1,3 @@
|
||||
---
|
||||
title: Post 1
|
||||
---
|
@@ -1 +1,3 @@
|
||||
---
|
||||
title: Post 2
|
||||
---
|
@@ -1,7 +0,0 @@
|
||||
title: blog
|
||||
content:
|
||||
fetch:
|
||||
posts:
|
||||
id: blog
|
||||
options:
|
||||
collection: true
|
@@ -1 +0,0 @@
|
||||
title: Bikes
|
@@ -1,24 +0,0 @@
|
||||
title: GT
|
||||
brand: gt
|
||||
content:
|
||||
fetch:
|
||||
discounts_available:
|
||||
id: discounts
|
||||
options:
|
||||
collection: true
|
||||
filter:
|
||||
where:
|
||||
-
|
||||
key: category
|
||||
operator: eq
|
||||
value: bikes
|
||||
label1:
|
||||
id: discounts/50-off
|
||||
options:
|
||||
filter:
|
||||
limit: 3
|
||||
label2:
|
||||
id: discounts/30-off
|
||||
options:
|
||||
filter:
|
||||
limit: 2
|
@@ -1,12 +0,0 @@
|
||||
title: Norco
|
||||
brand: norco
|
||||
content:
|
||||
fetch:
|
||||
label:
|
||||
id: discounts/30-off
|
||||
options:
|
||||
collection: true
|
||||
discounts:
|
||||
id: discounts
|
||||
options:
|
||||
collection: true
|
@@ -1,34 +0,0 @@
|
||||
title: Catalog
|
||||
visibility: visible
|
||||
content:
|
||||
fetch:
|
||||
label1:
|
||||
id: discounts/50-off
|
||||
options:
|
||||
filter:
|
||||
limit: 4
|
||||
bikes:
|
||||
id: catalog/bikes
|
||||
options:
|
||||
collection: true
|
||||
filter:
|
||||
where:
|
||||
-
|
||||
key: brand
|
||||
operator: eq
|
||||
value: gt
|
||||
limit: 10
|
||||
discounts:
|
||||
id: discounts
|
||||
options:
|
||||
collection: true
|
||||
filter:
|
||||
where:
|
||||
-
|
||||
key: title
|
||||
operator: eq
|
||||
value: '30% off'
|
||||
-
|
||||
key: category
|
||||
operator: eq
|
||||
value: bikes
|
@@ -1,5 +0,0 @@
|
||||
title: level1
|
||||
content:
|
||||
fetch:
|
||||
root:
|
||||
id: level1/level2
|
@@ -1,5 +0,0 @@
|
||||
title: level2
|
||||
content:
|
||||
fetch:
|
||||
root:
|
||||
id: level1/level2/level3
|
@@ -1,5 +0,0 @@
|
||||
title: level3
|
||||
content:
|
||||
fetch:
|
||||
root:
|
||||
id: level1/level2/level3/level4
|
@@ -1 +0,0 @@
|
||||
title: level4
|
@@ -1,8 +0,0 @@
|
||||
title: Macroable
|
||||
content:
|
||||
fetch:
|
||||
table:
|
||||
id: table
|
||||
options:
|
||||
method: fetchExtraData
|
||||
hello: world
|
@@ -1,26 +0,0 @@
|
||||
title: Media
|
||||
media:
|
||||
folders:
|
||||
fetch:
|
||||
macroable_folder:
|
||||
id: 'foo'
|
||||
options:
|
||||
method: fetchExtraData
|
||||
foo_folder:
|
||||
id: 'foo'
|
||||
collection_of_folders:
|
||||
id: '/'
|
||||
options:
|
||||
collection: true
|
||||
files:
|
||||
fetch:
|
||||
macroable_file:
|
||||
id: 'foo'
|
||||
options:
|
||||
method: fetchExtraData
|
||||
foo_file:
|
||||
id: foo.txt
|
||||
collection_of_files:
|
||||
id: '/'
|
||||
options:
|
||||
collection: true
|
@@ -1,14 +0,0 @@
|
||||
title: Root
|
||||
registry:
|
||||
get:
|
||||
flextype:
|
||||
key: flextype.manifest.name
|
||||
author.name:
|
||||
key: flextype.manifest.author.name
|
||||
license:
|
||||
key: flextype.manifest.license
|
||||
content:
|
||||
fetch:
|
||||
level1:
|
||||
id: registry-root/level-1
|
||||
result: toArray
|
@@ -1,14 +0,0 @@
|
||||
title: Level 1
|
||||
content:
|
||||
fetch:
|
||||
level2:
|
||||
id: registry-root/level-1/level-2
|
||||
result: toArray
|
||||
registry:
|
||||
get:
|
||||
flextype:
|
||||
key: flextype.manifest.name
|
||||
author.name:
|
||||
key: flextype.manifest.author.name
|
||||
license:
|
||||
key: flextype.manifest.license
|
@@ -1,9 +0,0 @@
|
||||
title: Level 2
|
||||
registry:
|
||||
get:
|
||||
flextype:
|
||||
key: flextype.manifest.name
|
||||
author.name:
|
||||
key: flextype.manifest.author.name
|
||||
license:
|
||||
key: flextype.manifest.license
|
@@ -1,19 +0,0 @@
|
||||
title: Album 1
|
||||
content:
|
||||
fetch:
|
||||
banner-single:
|
||||
id: banners
|
||||
banner-single-2:
|
||||
id: banners/2
|
||||
banners-collection:
|
||||
id: banners
|
||||
options:
|
||||
collection: true
|
||||
banners-collection-2:
|
||||
id: banners
|
||||
options:
|
||||
collection: true
|
||||
filter:
|
||||
limit: 1
|
||||
find:
|
||||
depth: ">0"
|
@@ -1 +0,0 @@
|
||||
title: Category1
|
@@ -1 +0,0 @@
|
||||
title: Albums
|
15
tests/fixtures/entries/content/root/content.yaml
vendored
15
tests/fixtures/entries/content/root/content.yaml
vendored
@@ -1,15 +0,0 @@
|
||||
title: Root
|
||||
content:
|
||||
fetch:
|
||||
albums:
|
||||
id: albums
|
||||
collection:
|
||||
id: albums
|
||||
options:
|
||||
collection: true
|
||||
collectionWithDepth:
|
||||
id: albums
|
||||
options:
|
||||
collection: false
|
||||
find:
|
||||
depth: '>0'
|
@@ -1,4 +0,0 @@
|
||||
hashed_access_token: $2y$10$YGKSNfRneBWO.PnJsdo0zuI1crQJnrswZow0UoMapM6/RvmAcNrAm
|
||||
calls: 13
|
||||
limit_calls: 0
|
||||
state: enabled
|
@@ -2,8 +2,96 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Flextype\Flextype;
|
||||
use Flextype\Parsers\Parsers;
|
||||
use Flextype\Serializers\Serializers;
|
||||
use Flextype\Entries\Entries;
|
||||
use Atomastic\Strings\Strings;
|
||||
use Atomastic\Registry\Registry;
|
||||
use Atomastic\Session\Session;
|
||||
use Slim\App;
|
||||
use DI\Container;
|
||||
use League\Event\Emitter;
|
||||
use Phpfastcache\Helper\Psr16Adapter as Cache;
|
||||
use Monolog\Logger;
|
||||
use Atomastic\Csrf\Csrf;
|
||||
use Cocur\Slugify\Slugify;
|
||||
use Atomastic\Arrays\Arrays;
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries')->ensureExists(0755, true);
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
filesystem()->directory(PATH['project'] . '/entries')->delete();
|
||||
});
|
||||
|
||||
test('test flextype() helper', function () {
|
||||
$this->assertSame(flextype(), Flextype::getInstance());
|
||||
expect(flextype())->toBeInstanceOf(Flextype::class);
|
||||
});
|
||||
|
||||
test('test app() helper', function () {
|
||||
$this->assertSame(app(), Flextype::getInstance()->app());
|
||||
expect(app())->toBeInstanceOf(App::class);
|
||||
});
|
||||
|
||||
test('test container() helper', function () {
|
||||
$this->assertSame(container(), Flextype::getInstance()->container());
|
||||
$this->assertSame(container(), Flextype::getInstance()->app()->getContainer());
|
||||
expect(container())->toBeInstanceOf(Container::class);
|
||||
});
|
||||
|
||||
test('test emitter() helper', function () {
|
||||
$this->assertSame(emitter(), Flextype::getInstance()->container()->get('emitter'));
|
||||
expect(emitter())->toBeInstanceOf(Emitter::class);
|
||||
});
|
||||
|
||||
test('test registry() helper', function () {
|
||||
$this->assertSame(registry(), Flextype::getInstance()->container()->get('registry'));
|
||||
expect(registry())->toBeInstanceOf(Registry::class);
|
||||
});
|
||||
|
||||
test('test session() helper', function () {
|
||||
$this->assertSame(session(), Flextype::getInstance()->container()->get('session'));
|
||||
expect(session())->toBeInstanceOf(Session::class);
|
||||
});
|
||||
|
||||
test('test cache() helper', function () {
|
||||
$this->assertSame(cache(), Flextype::getInstance()->container()->get('cache'));
|
||||
expect(cache())->toBeInstanceOf(Cache::class);
|
||||
});
|
||||
|
||||
test('test entries() helper', function () {
|
||||
$this->assertSame(entries(), Flextype::getInstance()->container()->get('entries'));
|
||||
expect(entries())->toBeInstanceOf(Entries::class);
|
||||
});
|
||||
|
||||
test('test logger() helper', function () {
|
||||
$this->assertSame(logger(), Flextype::getInstance()->container()->get('logger'));
|
||||
expect(logger())->toBeInstanceOf(Logger::class);
|
||||
});
|
||||
|
||||
test('test parsers() helper', function () {
|
||||
$this->assertSame(parsers(), Flextype::getInstance()->container()->get('parsers'));
|
||||
expect(parsers())->toBeInstanceOf(Parsers::class);
|
||||
});
|
||||
|
||||
test('test serializers() helper', function () {
|
||||
$this->assertSame(serializers(), Flextype::getInstance()->container()->get('serializers'));
|
||||
expect(serializers())->toBeInstanceOf(Serializers::class);
|
||||
});
|
||||
|
||||
test('test csrf() helper', function () {
|
||||
$this->assertSame(csrf(), Flextype::getInstance()->container()->get('csrf'));
|
||||
expect(csrf())->toBeInstanceOf(Csrf::class);
|
||||
});
|
||||
|
||||
test('test slugify() helper', function () {
|
||||
$this->assertSame(slugify(), Flextype::getInstance()->container()->get('slugify'));
|
||||
expect(slugify())->toBeInstanceOf(Slugify::class);
|
||||
});
|
||||
|
||||
test('test filterCollection() method', function () {
|
||||
$this->assertEquals([], filterCollection());
|
||||
$this->assertEquals([], filterCollection([]));
|
||||
@@ -80,3 +168,12 @@ test('test filterCollection() method', function () {
|
||||
filterCollection($data, ['return' => 'all',
|
||||
'where' => [['key' => 'title', 'operator' => '=', 'value' => 'About']]]));
|
||||
});
|
||||
|
||||
|
||||
test('test find() method', function () {
|
||||
entries()->create('foo', []);
|
||||
$this->assertTrue(find(PATH['project'] . '/entries')->hasResults());
|
||||
$this->assertTrue(find(PATH['project'] . '/entries', [])->hasResults());
|
||||
$this->assertTrue(find(PATH['project'] . '/entries', [], 'files')->hasResults());
|
||||
$this->assertTrue(find(PATH['project'], [], 'directories')->hasResults());
|
||||
});
|
@@ -1,170 +0,0 @@
|
||||
<?php
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->ensureExists(0755, true);
|
||||
});
|
||||
|
||||
afterEach(function (): void {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->delete();
|
||||
});
|
||||
|
||||
test('test create() method', function () {
|
||||
$this->assertTrue(content()->create('foo', []));
|
||||
$this->assertFalse(content()->create('foo', []));
|
||||
});
|
||||
|
||||
test('test has()', function () {
|
||||
content()->create('foo', []);
|
||||
|
||||
$this->assertTrue(content()->has('foo'));
|
||||
$this->assertFalse(content()->has('bar'));
|
||||
});
|
||||
|
||||
test('test update() method', function () {
|
||||
content()->create('foo', []);
|
||||
|
||||
$this->assertTrue(content()->update('foo', ['title' => 'Test']));
|
||||
$this->assertFalse(content()->update('bar', ['title' => 'Test']));
|
||||
});
|
||||
|
||||
test('test fetch() content', function () {
|
||||
content()->create('foo', ['title' => 'Foo']);
|
||||
content()->create('foo/bar', ['title' => 'Bar']);
|
||||
content()->create('foo/baz', ['title' => 'Baz']);
|
||||
content()->create('foo/zed', ['title' => 'Zed']);
|
||||
|
||||
$this->assertEquals(11, content()->fetch('foo')->count());
|
||||
$this->assertEquals('foo', content()->fetch('foo')['id']);
|
||||
$this->assertEquals(11, content()->fetch('foo', [])->count());
|
||||
$this->assertEquals('foo', content()->fetch('foo')['id']);
|
||||
$this->assertEquals(3, content()->fetch('foo', ['collection' => true])->count());
|
||||
|
||||
$this->assertEquals('Bar', content()->fetch('foo/bar')['title']);
|
||||
$this->assertEquals('Baz', content()->fetch('foo/baz')['title']);
|
||||
$this->assertEquals('Zed', content()->fetch('foo/zed')['title']);
|
||||
|
||||
content()->registry()->set('fetch.id', 'wrong-content');
|
||||
$this->assertEquals(0, content()->fetch('wrong-content')->count());
|
||||
content()->registry()->set('fetch.id', 'wrong-content');
|
||||
$this->assertEquals(0, content()->fetch('wrong-content')->count());
|
||||
|
||||
$this->assertTrue(count(content()->fetch('foo', ['collection' => true])) > 0);
|
||||
|
||||
$this->assertEquals(['title' => 'Foo'], content()->fetch('foo', ['filter' => ['only' => ['title']]])->toArray());
|
||||
$this->assertEquals(10, content()->fetch('foo', ['filter' => ['except' => ['title']]])->count());
|
||||
$this->assertEquals(1, content()->fetch('foo', ['filter' => ['only' => ['title']]])->count());
|
||||
$this->assertEquals(['foo/zed' => ['title' => 'Zed'], 'foo/baz' => ['title' => 'Baz'], 'foo/bar' => ['title' => 'Bar']], content()->fetch('foo', ['collection' => true, 'filter' => ['only' => ['title']]])->toArray());
|
||||
$except = content()->fetch('foo', ['collection' => true, 'filter' => ['except' => ['title']]]);
|
||||
$this->assertEquals(10, count($except['foo/bar']));
|
||||
});
|
||||
|
||||
test('test copy() method', function () {
|
||||
content()->create('foo', []);
|
||||
content()->create('foo/bar', []);
|
||||
content()->create('foo/baz', []);
|
||||
|
||||
content()->create('zed', []);
|
||||
content()->copy('foo', 'zed');
|
||||
|
||||
$this->assertTrue(content()->has('zed'));
|
||||
});
|
||||
|
||||
test('test delete() method', function () {
|
||||
content()->create('foo', []);
|
||||
content()->create('foo/bar', []);
|
||||
content()->create('foo/baz', []);
|
||||
|
||||
$this->assertTrue(content()->delete('foo'));
|
||||
$this->assertFalse(content()->has('foo'));
|
||||
});
|
||||
|
||||
test('test move() method', function () {
|
||||
content()->create('foo', []);
|
||||
content()->create('zed', []);
|
||||
|
||||
$this->assertTrue(content()->move('foo', 'bar'));
|
||||
$this->assertTrue(content()->has('bar'));
|
||||
$this->assertFalse(content()->has('foo'));
|
||||
$this->assertFalse(content()->move('zed', 'bar'));
|
||||
});
|
||||
|
||||
test('test getFileLocation() method', function () {
|
||||
content()->create('foo', []);
|
||||
|
||||
$this->assertStringContainsString('/foo/content.yaml',
|
||||
content()->getFileLocation('foo'));
|
||||
});
|
||||
|
||||
test('test getDirectoryLocation() content', function () {
|
||||
content()->create('foo', []);
|
||||
|
||||
$this->assertStringContainsString('/foo',
|
||||
content()->getDirectoryLocation('foo'));
|
||||
});
|
||||
|
||||
test('test getCacheID() content', function () {
|
||||
registry()->set('flextype.settings.cache.enabled', false);
|
||||
content()->create('foo', []);
|
||||
$this->assertEquals('', content()->getCacheID('foo'));
|
||||
|
||||
registry()->set('flextype.settings.cache.enabled', true);
|
||||
content()->create('bar', []);
|
||||
$cache_id = content()->getCacheID('bar');
|
||||
$this->assertEquals(32, strlen($cache_id));
|
||||
registry()->set('flextype.settings.cache.enabled', false);
|
||||
});
|
||||
|
||||
test('test storage() content', function () {
|
||||
content()->registry()->set('foo', ['title' => 'Foo']);
|
||||
$this->assertEquals('Foo', content()->registry()->get('foo')['title']);
|
||||
content()->registry()->set('bar', ['title' => 'Bar']);
|
||||
$this->assertEquals(true, content()->registry()->has('foo.title'));
|
||||
$this->assertEquals(true, content()->registry()->has('bar.title'));
|
||||
content()->registry()->delete('foo.title');
|
||||
content()->registry()->delete('bar.title');
|
||||
$this->assertEquals(false, content()->registry()->has('foo.title'));
|
||||
$this->assertEquals(false, content()->registry()->has('bar.title'));
|
||||
});
|
||||
|
||||
test('test macro() content', function () {
|
||||
content()->create('foo', []);
|
||||
content()->create('foo/bar', []);
|
||||
content()->create('foo/baz', []);
|
||||
|
||||
content()::macro('fetchRecentPosts', function($limit = 1) {
|
||||
return content()
|
||||
->fetch('foo')
|
||||
->sortBy('published_at')
|
||||
->limit($limit);
|
||||
});
|
||||
|
||||
$this->assertEquals(1, content()->fetchRecentPosts()->count());
|
||||
$this->assertEquals(1, content()->fetchRecentPosts(1)->count());
|
||||
$this->assertEquals(2, content()->fetchRecentPosts(2)->count());
|
||||
});
|
||||
|
||||
test('test mixin() content', function () {
|
||||
content()->create('foo', []);
|
||||
content()->create('foo/bar', []);
|
||||
content()->create('foo/baz', []);
|
||||
|
||||
class FooMixin {
|
||||
public function foo() {
|
||||
return function () {
|
||||
return 'Foo';
|
||||
};
|
||||
}
|
||||
|
||||
public function bar() {
|
||||
return function ($val = 'Foo') {
|
||||
return $val;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
content()::mixin(new FooMixin());
|
||||
|
||||
$this->assertEquals('Foo', content()->foo());
|
||||
$this->assertEquals('Foo', content()->bar());
|
||||
$this->assertEquals('Bar', content()->bar('Bar'));
|
||||
});
|
@@ -1,107 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Flextype\Component\Filesystem\Filesystem;
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->create();
|
||||
});
|
||||
|
||||
afterEach(function (): void {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->delete();
|
||||
});
|
||||
|
||||
test('test content field for blog', function () {
|
||||
content()->create('blog', serializers()->yaml()->decode(filesystem()->file(ROOT_DIR . '/tests/fixtures/entries/content/blog/content.yaml')->get()));
|
||||
content()->create('blog/post-1', serializers()->yaml()->decode(filesystem()->file(ROOT_DIR . '/tests/fixtures/entries/content/blog/post-1/content.yaml')->get()));
|
||||
content()->create('blog/post-2', serializers()->yaml()->decode(filesystem()->file(ROOT_DIR . '/tests/fixtures/entries/content/blog/post-2/content.yaml')->get()));
|
||||
|
||||
$blog = content()->fetch('blog');
|
||||
|
||||
$this->assertEquals(13, $blog->count());
|
||||
});
|
||||
|
||||
test('test content field for catalog', function () {
|
||||
|
||||
// Create catalog
|
||||
content()->create('catalog', serializers()->yaml()->decode(filesystem()->file(ROOT_DIR . '/tests/fixtures/entries/content/catalog/content.yaml')->get()));
|
||||
content()->create('catalog/bikes', serializers()->yaml()->decode(filesystem()->file(ROOT_DIR . '/tests/fixtures/entries/content/catalog/bikes/content.yaml')->get()));
|
||||
content()->create('catalog/bikes/gt', serializers()->yaml()->decode(filesystem()->file(ROOT_DIR . '/tests/fixtures/entries/content/catalog/bikes/gt/content.yaml')->get()));
|
||||
content()->create('catalog/bikes/norco', serializers()->yaml()->decode(filesystem()->file(ROOT_DIR . '/tests/fixtures/entries/content/catalog/bikes/norco/content.yaml')->get()));
|
||||
content()->create('catalog/bikes/foo', ['title' => 'foo']);
|
||||
content()->create('catalog/bikes/foo/bar', ['title' => 'bar']);
|
||||
|
||||
// Create discounts
|
||||
content()->create('discounts', ['title' => 'Discounts']);
|
||||
content()->create('discounts/30-off', ['title' => '30% off', 'category' => 'bikes']);
|
||||
content()->create('discounts/50-off', ['title' => '50% off', 'category' => 'bikes']);
|
||||
|
||||
// Create banner
|
||||
content()->create('banner', ['title' => 'Banner']);
|
||||
|
||||
$catalogSingle = content()->fetch('catalog');
|
||||
|
||||
$this->assertEquals(15, $catalogSingle->count());
|
||||
$this->assertEquals('Catalog', $catalogSingle['title']);
|
||||
$this->assertEquals('catalog', $catalogSingle['id']);
|
||||
$this->assertEquals(1, $catalogSingle['bikes']->count());
|
||||
$this->assertTrue(isset($catalogSingle['bikes']['catalog/bikes/gt']));
|
||||
$this->assertEquals('GT', $catalogSingle['bikes']['catalog/bikes/gt']['title']);
|
||||
$this->assertEquals(1, $catalogSingle['discounts']->count());
|
||||
$this->assertTrue(isset($catalogSingle['discounts']['discounts/30-off']));
|
||||
$this->assertEquals('30% off', $catalogSingle['discounts']['discounts/30-off']['title']);
|
||||
|
||||
$catalogCollection = content()->fetch('catalog', ['collection' => true]);
|
||||
$this->assertEquals(1, $catalogCollection->count());
|
||||
$this->assertEquals('Bikes', $catalogCollection['catalog/bikes']['title']);
|
||||
$this->assertEquals('catalog/bikes', $catalogCollection['catalog/bikes']['id']);
|
||||
|
||||
$catalogLongCollecion = content()->fetch('catalog', ['collection' => true, 'find' => ['depth' => ['>0', '<4']]]);
|
||||
$this->assertEquals(5, $catalogLongCollecion->count());
|
||||
|
||||
$banner = content()->fetch('banner');
|
||||
$this->assertEquals('Banner', $banner['title']);
|
||||
$this->assertEquals('banner', $banner['id']);
|
||||
});
|
||||
|
||||
test('test content field for albmus', function () {
|
||||
content()->create('root', serializers()->yaml()->decode(filesystem()->file(ROOT_DIR . '/tests/fixtures/entries/content/root/content.yaml')->get()));
|
||||
|
||||
content()->create('albums', serializers()->yaml()->decode(filesystem()->file(ROOT_DIR . '/tests/fixtures/entries/content/root/albums/content.yaml')->get()));
|
||||
content()->create('albums/category-1', serializers()->yaml()->decode(filesystem()->file(ROOT_DIR . '/tests/fixtures/entries/content/root/albums/category-1/content.yaml')->get()));
|
||||
content()->create('albums/category-1/album-1', serializers()->yaml()->decode(filesystem()->file(ROOT_DIR . '/tests/fixtures/entries/content/root/albums/category-1/album-1/content.yaml')->get()));
|
||||
|
||||
content()->create('banners', ['title' => 'Banners']);
|
||||
content()->create('banners/1', ['title' => 'Banner1']);
|
||||
content()->create('banners/2', ['title' => 'Banner2']);
|
||||
|
||||
$root = content()->fetch('root');
|
||||
|
||||
$this->assertEquals(15, $root->count());
|
||||
});
|
||||
|
||||
test('test content field for long nested content', function () {
|
||||
content()->create('level1', serializers()->yaml()->decode(filesystem()->file(ROOT_DIR . '/tests/fixtures/entries/content/level1/content.yaml')->get()));
|
||||
content()->create('level1/level2', serializers()->yaml()->decode(filesystem()->file(ROOT_DIR . '/tests/fixtures/entries/content/level1/level2/content.yaml')->get()));
|
||||
content()->create('level1/level2/level3', serializers()->yaml()->decode(filesystem()->file(ROOT_DIR . '/tests/fixtures/entries/content/level1/level2/level3/content.yaml')->get()));
|
||||
content()->create('level1/level2/level3/level4', serializers()->yaml()->decode(filesystem()->file(ROOT_DIR . '/tests/fixtures/entries/content/level1/level2/level3/level4/content.yaml')->get()));
|
||||
|
||||
$level = content()->fetch('level1');
|
||||
|
||||
$this->assertEquals(13, $level->count());
|
||||
$this->assertEquals('level1/level2', $level['root']['id']);
|
||||
$this->assertEquals('level1/level2/level3', $level['root']['root']['id']);
|
||||
$this->assertEquals('level1/level2/level3/level4', $level['root']['root']['root']['id']);
|
||||
});
|
||||
|
||||
test('test content field for macroable fetch content', function () {
|
||||
content()->create('macroable', serializers()->yaml()->decode(filesystem()->file(ROOT_DIR . '/tests/fixtures/entries/content/macroable/content.yaml')->get()));
|
||||
|
||||
content()::macro('fetchExtraData', function ($id, $options) {
|
||||
return ['id' => $id, 'options' => $options];
|
||||
});
|
||||
|
||||
$macroable = content()->fetch('macroable');
|
||||
|
||||
$this->assertEquals('table', $macroable['table']['id']);
|
||||
$this->assertEquals('world', $macroable['table']['options']['hello']);
|
||||
});
|
@@ -1,19 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Flextype\Component\Filesystem\Filesystem;
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->create();
|
||||
});
|
||||
|
||||
afterEach(function (): void {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->delete();
|
||||
});
|
||||
|
||||
test('test CreatedAtField', function () {
|
||||
// 1
|
||||
content()->create('foo', []);
|
||||
$created_at = content()->fetch('foo')['created_at'];
|
||||
$this->assertTrue(strlen($created_at) > 0);
|
||||
$this->assertTrue((ctype_digit($created_at) && strtotime(date('Y-m-d H:i:s', $created_at)) === (int)$created_at));
|
||||
});
|
@@ -1,21 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Flextype\Component\Filesystem\Filesystem;
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->create();
|
||||
});
|
||||
|
||||
afterEach(function (): void {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->delete();
|
||||
});
|
||||
|
||||
test('test CreatedByField', function () {
|
||||
content()->create('foo', []);
|
||||
$created_by = content()->fetch('foo')['created_by'];
|
||||
$this->assertEquals('', $created_by);
|
||||
|
||||
content()->create('bar', ['created_by' => 'Zed']);
|
||||
$created_by = content()->fetch('bar')['created_by'];
|
||||
$this->assertEquals('Zed', $created_by);
|
||||
});
|
@@ -1,21 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Flextype\Component\Filesystem\Filesystem;
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->create();
|
||||
});
|
||||
|
||||
afterEach(function (): void {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->delete();
|
||||
});
|
||||
|
||||
test('test IdField', function () {
|
||||
content()->create('foo', []);
|
||||
$id = content()->fetch('foo')['id'];
|
||||
$this->assertEquals('foo', $id);
|
||||
|
||||
content()->create('foo/bar', []);
|
||||
$id = content()->fetch('foo/bar')['id'];
|
||||
$this->assertEquals('foo/bar', $id);
|
||||
});
|
@@ -1,20 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Flextype\Component\Filesystem\Filesystem;
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->create();
|
||||
});
|
||||
|
||||
afterEach(function (): void {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->delete();
|
||||
});
|
||||
|
||||
test('test ModifiedAtField', function () {
|
||||
content()->create('foo', []);
|
||||
|
||||
$modified_at = content()->fetch('foo')['modified_at'];
|
||||
|
||||
$this->assertTrue(strlen($modified_at) > 0);
|
||||
$this->assertTrue((ctype_digit($modified_at) && strtotime(date('Y-m-d H:i:s', $modified_at)) === (int)$modified_at));
|
||||
});
|
@@ -1,16 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Flextype\Component\Filesystem\Filesystem;
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->create();
|
||||
});
|
||||
|
||||
afterEach(function (): void {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->delete();
|
||||
});
|
||||
|
||||
test('test ParsersField', function () {
|
||||
content()->create('bar', ['content' => '[registry_get name="Bar" default="Zed"]', 'parsers' => ['shortcodes' => ['enabled' => true, 'fields' => ['content']]]]);
|
||||
$this->assertEquals('Zed', content()->fetch('bar')['content']);
|
||||
});
|
@@ -1,20 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Flextype\Component\Filesystem\Filesystem;
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->create();
|
||||
});
|
||||
|
||||
afterEach(function (): void {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->delete();
|
||||
});
|
||||
|
||||
test('test PublishedAtField', function () {
|
||||
content()->create('foo', []);
|
||||
|
||||
$published_at = content()->fetch('foo')['published_at'];
|
||||
|
||||
$this->assertTrue(strlen($published_at) > 0);
|
||||
$this->assertTrue((ctype_digit($published_at) && strtotime(date('Y-m-d H:i:s', $published_at)) === (int)$published_at));
|
||||
});
|
@@ -1,21 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Flextype\Component\Filesystem\Filesystem;
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->create();
|
||||
});
|
||||
|
||||
afterEach(function (): void {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->delete();
|
||||
});
|
||||
|
||||
test('test PublishedByField', function () {
|
||||
content()->create('foo', []);
|
||||
$published_by = content()->fetch('foo')['published_by'];
|
||||
$this->assertEquals('', $published_by);
|
||||
|
||||
content()->create('bar', ['published_by' => 'Zed']);
|
||||
$published_by = content()->fetch('bar')['published_by'];
|
||||
$this->assertEquals('Zed', $published_by);
|
||||
});
|
@@ -1,29 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Flextype\Component\Filesystem\Filesystem;
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->create();
|
||||
});
|
||||
|
||||
afterEach(function (): void {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->delete();
|
||||
});
|
||||
|
||||
test('test RegistryField', function () {
|
||||
content()->create('registry-root', serializers()->yaml()->decode(filesystem()->file(ROOT_DIR . '/tests/fixtures/entries/content/registry-root/content.yaml')->get()));
|
||||
content()->create('registry-root/level-1', serializers()->yaml()->decode(filesystem()->file(ROOT_DIR . '/tests/fixtures/entries/content/registry-root/level-1/content.yaml')->get()));
|
||||
content()->create('registry-root/level-1/level-2', serializers()->yaml()->decode(filesystem()->file(ROOT_DIR . '/tests/fixtures/entries/content/registry-root/level-1/level-2/content.yaml')->get()));
|
||||
|
||||
$data = content()->fetch('registry-root');
|
||||
|
||||
$this->assertEquals('Flextype', $data['flextype']);
|
||||
$this->assertEquals('Sergey Romanenko', $data['author']['name']);
|
||||
$this->assertEquals('MIT', $data['license']);
|
||||
$this->assertEquals('Flextype', $data['level1']['flextype']);
|
||||
$this->assertEquals('Sergey Romanenko', $data['level1']['author']['name']);
|
||||
$this->assertEquals('MIT', $data['level1']['license']);
|
||||
$this->assertEquals('Flextype', $data['level1']['level2']['flextype']);
|
||||
$this->assertEquals('Sergey Romanenko', $data['level1']['level2']['author']['name']);
|
||||
$this->assertEquals('MIT', $data['level1']['level2']['license']);
|
||||
});
|
@@ -1,27 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Flextype\Component\Filesystem\Filesystem;
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->create();
|
||||
});
|
||||
|
||||
afterEach(function (): void {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->delete();
|
||||
});
|
||||
|
||||
test('test RoutableField', function () {
|
||||
registry()->set('flextype.settings.cache.enabled', false);
|
||||
|
||||
content()->create('foo', ['routable' => true]);
|
||||
$routable = content()->fetch('foo')['routable'];
|
||||
$this->assertTrue($routable);
|
||||
|
||||
content()->create('bar', []);
|
||||
$routable = content()->fetch('bar')['routable'];
|
||||
$this->assertTrue($routable);
|
||||
|
||||
content()->create('zed', ['routable' => false]);
|
||||
$routable = content()->fetch('zed')['routable'];
|
||||
$this->assertFalse($routable);
|
||||
});
|
@@ -1,21 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Flextype\Component\Filesystem\Filesystem;
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->create();
|
||||
});
|
||||
|
||||
afterEach(function (): void {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->delete();
|
||||
});
|
||||
|
||||
test('test SlugField', function () {
|
||||
content()->create('foo', []);
|
||||
$slug = content()->fetch('foo')['slug'];
|
||||
$this->assertEquals('foo', $slug);
|
||||
|
||||
content()->create('bar', []);
|
||||
$slug = content()->fetch('bar')['slug'];
|
||||
$this->assertEquals('bar', $slug);
|
||||
});
|
@@ -1,19 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Flextype\Component\Filesystem\Filesystem;
|
||||
|
||||
use Respect\Validation\Validator as v;
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->create();
|
||||
});
|
||||
|
||||
afterEach(function (): void {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->delete();
|
||||
});
|
||||
|
||||
test('test UuidField', function () {
|
||||
content()->create('foo', []);
|
||||
$uuid = content()->fetch('foo')['uuid'];
|
||||
$this->assertTrue(v::uuid()->validate($uuid));
|
||||
});
|
@@ -1,25 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Flextype\Component\Filesystem\Filesystem;
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->create();
|
||||
});
|
||||
|
||||
afterEach(function (): void {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->delete();
|
||||
});
|
||||
|
||||
test('test VisibilityField', function () {
|
||||
content()->create('foo', []);
|
||||
$visibility = content()->fetch('foo')['visibility'];
|
||||
$this->assertEquals('visible', $visibility);
|
||||
|
||||
content()->create('bar', ['visibility' => 'draft']);
|
||||
$visibility = content()->fetch('bar')['visibility'];
|
||||
$this->assertEquals('draft', $visibility);
|
||||
|
||||
content()->create('zed', ['visibility' => 'foobar']);
|
||||
$visibility = content()->fetch('zed')['visibility'];
|
||||
$this->assertEquals('visible', $visibility);
|
||||
});
|
10
tests/src/flextype/core/Entries/EntriesBlogTest.php
Normal file
10
tests/src/flextype/core/Entries/EntriesBlogTest.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries')->ensureExists(0755, true);
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
filesystem()->directory(PATH['project'] . '/entries')->delete();
|
||||
});
|
||||
|
143
tests/src/flextype/core/Entries/EntriesTest.php
Normal file
143
tests/src/flextype/core/Entries/EntriesTest.php
Normal file
@@ -0,0 +1,143 @@
|
||||
<?php
|
||||
|
||||
use Atomastic\Arrays\Arrays;
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries')->ensureExists(0755, true);
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
filesystem()->directory(PATH['project'] . '/entries')->delete();
|
||||
});
|
||||
|
||||
test('create new entry foo', function () {
|
||||
expect(entries()->create('foo', []))->toBeTrue();
|
||||
expect(entries()->create('foo', []))->toBeFalse();
|
||||
});
|
||||
|
||||
test('has entry foo', function () {
|
||||
expect(entries()->create('foo', []))->toBeTrue();
|
||||
expect(entries()->has('foo'))->toBeTrue();
|
||||
expect(entries()->has('bar'))->toBeFalse();
|
||||
});
|
||||
|
||||
test('update entry foo', function () {
|
||||
expect(entries()->create('foo', []))->toBeTrue();
|
||||
expect(entries()->update('foo', ['title' => 'Foo']))->toBeTrue();
|
||||
expect(entries()->update('bar', ['title' => 'Bar']))->toBeFalse();
|
||||
});
|
||||
|
||||
test('delete entry foo', function () {
|
||||
expect(entries()->create('foo', []))->toBeTrue();
|
||||
expect(entries()->create('foo/bar', []))->toBeTrue();
|
||||
expect(entries()->create('foo/zed', []))->toBeTrue();
|
||||
|
||||
expect(entries()->delete('foo'))->toBeTrue();
|
||||
expect(entries()->has('foo'))->toBeFalse();
|
||||
});
|
||||
|
||||
test('move entry foo into bar', function () {
|
||||
expect(entries()->create('foo', []))->toBeTrue();
|
||||
expect(entries()->create('bar', []))->toBeTrue();
|
||||
|
||||
expect(entries()->move('foo', 'bar/foo'))->toBeTrue();
|
||||
expect(entries()->has('bar/foo'))->toBeTrue();
|
||||
});
|
||||
|
||||
test('copy entry foo into bar', function () {
|
||||
expect(entries()->create('foo', []))->toBeTrue();
|
||||
expect(entries()->create('bar', []))->toBeTrue();
|
||||
|
||||
expect(entries()->copy('foo', 'bar/foo'))->toBeTrue();
|
||||
expect(entries()->has('bar/foo'))->toBeTrue();
|
||||
expect(entries()->has('foo'))->toBeTrue();
|
||||
});
|
||||
|
||||
test('fetch entry foo', function () {
|
||||
expect(entries()->create('foo', []))->toBeTrue();
|
||||
|
||||
expect(entries()->fetch('foo'))->toBeInstanceOf(Arrays::class);
|
||||
expect(count(entries()->fetch('foo')->toArray()) > 0)->toBeTrue();
|
||||
});
|
||||
|
||||
test('get file location for entry foo', function () {
|
||||
expect(entries()->create('foo', []))->toBeTrue();
|
||||
|
||||
expect(entries()->getFileLocation('foo'))->toContain('/foo/entry.yaml');
|
||||
});
|
||||
|
||||
test('get directory location for entry foo', function () {
|
||||
expect(entries()->create('foo', []))->toBeTrue();
|
||||
|
||||
expect(entries()->getDirectoryLocation('foo'))->toContain('/foo');
|
||||
});
|
||||
|
||||
test('get cache ID for entry foo with cache enabled false', function () {
|
||||
registry()->set('flextype.settings.cache.enabled', false);
|
||||
expect(entries()->create('foo', []))->toBeTrue();
|
||||
expect(entries()->getCacheID('foo'))->toBeEmpty();
|
||||
});
|
||||
|
||||
test('get cache ID for entry foo with cache enabled true', function () {
|
||||
registry()->set('flextype.settings.cache.enabled', true);
|
||||
expect(entries()->create('foo', []))->toBeTrue();
|
||||
expect(strlen(entries()->getCacheID('foo')))->toEqual(32);
|
||||
});
|
||||
|
||||
test('registry for entry foo', function() {
|
||||
entries()->registry()->set('foo', ['title' => 'Foo']);
|
||||
expect(entries()->registry()->get('foo.title'))->toEqual('Foo');
|
||||
entries()->registry()->set('bar', ['title' => 'Bar']);
|
||||
expect(entries()->registry()->get('bar.title'))->toEqual('Bar');
|
||||
|
||||
expect(entries()->registry()->has('foo.title'))->toBeTrue();
|
||||
expect(entries()->registry()->has('bar.title'))->toBeTrue();
|
||||
|
||||
entries()->registry()->delete('foo.title');
|
||||
entries()->registry()->delete('bar.title');
|
||||
|
||||
expect(entries()->registry()->has('foo.title'))->toBeFalse();
|
||||
expect(entries()->registry()->has('bar.title'))->toBeFalse();
|
||||
});
|
||||
|
||||
test('macro for entries', function() {
|
||||
expect(entries()->create('foo', []))->toBeTrue();
|
||||
expect(entries()->create('foo/bar', []))->toBeTrue();
|
||||
expect(entries()->create('foo/zed', []))->toBeTrue();
|
||||
|
||||
entries()::macro('fetchRecentEntries', function(int $limit = 1) {
|
||||
return entries()
|
||||
->fetch('foo', ['collection' => true])
|
||||
->limit($limit);
|
||||
});
|
||||
|
||||
expect(entries()->fetchRecentEntries()->count())->toEqual(1);
|
||||
expect(entries()->fetchRecentEntries(1)->count())->toEqual(1);
|
||||
expect(entries()->fetchRecentEntries(2)->count())->toEqual(2);
|
||||
});
|
||||
|
||||
test('mixin for entries', function() {
|
||||
class FooMixin {
|
||||
public function foo() {
|
||||
return function () {
|
||||
return 'Foo';
|
||||
};
|
||||
}
|
||||
|
||||
public function bar() {
|
||||
return function ($val = 'Foo') {
|
||||
return $val;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
entries()::mixin(new FooMixin());
|
||||
|
||||
expect(entries()->foo())->toEqual('Foo');
|
||||
expect(entries()->bar())->toEqual('Foo');
|
||||
expect(entries()->bar('Bar'))->toEqual('Bar');
|
||||
});
|
||||
|
||||
test('get entries options', function () {
|
||||
expect(entries()->getOptions())->toBeArray();
|
||||
});
|
@@ -1,21 +0,0 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Symfony\Component\Finder\Finder;
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->create(0755, true);
|
||||
content()->create('foo', []);
|
||||
});
|
||||
|
||||
afterEach(function (): void {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->delete();
|
||||
});
|
||||
|
||||
test('test find() method', function () {
|
||||
$this->assertTrue(find(PATH['project'] . '/entries/content')->hasResults());
|
||||
$this->assertTrue(find(PATH['project'] . '/entries/content', [])->hasResults());
|
||||
$this->assertTrue(find(PATH['project'] . '/entries/content', [], 'files')->hasResults());
|
||||
$this->assertTrue(find(PATH['project'], [], 'directories')->hasResults());
|
||||
});
|
@@ -6,14 +6,6 @@ use Flextype\Flextype;
|
||||
use Flextype\Content\Content;
|
||||
use Atomastic\Strings\Strings;
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->create();
|
||||
});
|
||||
|
||||
afterEach(function (): void {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->delete();
|
||||
});
|
||||
|
||||
test('test getVersion() method', function () {
|
||||
$this->assertTrue(!Strings::create(Flextype::getInstance()->getVersion())->isEmpty());
|
||||
});
|
||||
|
@@ -1,92 +0,0 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Flextype\Flextype;
|
||||
use Flextype\Content\Content;
|
||||
use Flextype\Media\Media;
|
||||
use Flextype\Parsers\Parsers;
|
||||
use Flextype\Serializers\Serializers;
|
||||
use Flextype\Tokens\Tokens;
|
||||
use Atomastic\Strings\Strings;
|
||||
use Atomastic\Registry\Registry;
|
||||
use Atomastic\Session\Session;
|
||||
use Slim\App;
|
||||
use DI\Container;
|
||||
use League\Event\Emitter;
|
||||
use Phpfastcache\Helper\Psr16Adapter as Cache;
|
||||
use Monolog\Logger;
|
||||
use Atomastic\Csrf\Csrf;
|
||||
use Cocur\Slugify\Slugify;
|
||||
|
||||
|
||||
test('test flextype() helper', function () {
|
||||
$this->assertSame(flextype(), Flextype::getInstance());
|
||||
expect(flextype())->toBeInstanceOf(Flextype::class);
|
||||
});
|
||||
|
||||
test('test app() helper', function () {
|
||||
$this->assertSame(app(), Flextype::getInstance()->app());
|
||||
expect(app())->toBeInstanceOf(App::class);
|
||||
});
|
||||
|
||||
test('test container() helper', function () {
|
||||
$this->assertSame(container(), Flextype::getInstance()->container());
|
||||
$this->assertSame(container(), Flextype::getInstance()->app()->getContainer());
|
||||
expect(container())->toBeInstanceOf(Container::class);
|
||||
});
|
||||
|
||||
test('test emitter() helper', function () {
|
||||
$this->assertSame(emitter(), Flextype::getInstance()->container()->get('emitter'));
|
||||
expect(emitter())->toBeInstanceOf(Emitter::class);
|
||||
});
|
||||
|
||||
test('test registry() helper', function () {
|
||||
$this->assertSame(registry(), Flextype::getInstance()->container()->get('registry'));
|
||||
expect(registry())->toBeInstanceOf(Registry::class);
|
||||
});
|
||||
|
||||
test('test session() helper', function () {
|
||||
$this->assertSame(session(), Flextype::getInstance()->container()->get('session'));
|
||||
expect(session())->toBeInstanceOf(Session::class);
|
||||
});
|
||||
|
||||
test('test cache() helper', function () {
|
||||
$this->assertSame(cache(), Flextype::getInstance()->container()->get('cache'));
|
||||
expect(cache())->toBeInstanceOf(Cache::class);
|
||||
});
|
||||
|
||||
test('test media() helper', function () {
|
||||
$this->assertSame(media(), Flextype::getInstance()->container()->get('media'));
|
||||
expect(media())->toBeInstanceOf(Media::class);
|
||||
});
|
||||
|
||||
test('test content() helper', function () {
|
||||
$this->assertSame(content(), Flextype::getInstance()->container()->get('content'));
|
||||
expect(content())->toBeInstanceOf(Content::class);
|
||||
});
|
||||
|
||||
test('test logger() helper', function () {
|
||||
$this->assertSame(logger(), Flextype::getInstance()->container()->get('logger'));
|
||||
expect(logger())->toBeInstanceOf(Logger::class);
|
||||
});
|
||||
|
||||
test('test parsers() helper', function () {
|
||||
$this->assertSame(parsers(), Flextype::getInstance()->container()->get('parsers'));
|
||||
expect(parsers())->toBeInstanceOf(Parsers::class);
|
||||
});
|
||||
|
||||
test('test serializers() helper', function () {
|
||||
$this->assertSame(serializers(), Flextype::getInstance()->container()->get('serializers'));
|
||||
expect(serializers())->toBeInstanceOf(Serializers::class);
|
||||
});
|
||||
|
||||
test('test csrf() helper', function () {
|
||||
$this->assertSame(csrf(), Flextype::getInstance()->container()->get('csrf'));
|
||||
expect(csrf())->toBeInstanceOf(Csrf::class);
|
||||
});
|
||||
|
||||
test('test slugify() helper', function () {
|
||||
$this->assertSame(slugify(), Flextype::getInstance()->container()->get('slugify'));
|
||||
expect(slugify())->toBeInstanceOf(Slugify::class);
|
||||
});
|
@@ -1,32 +0,0 @@
|
||||
<?php
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries/media')->ensureExists(0755, true);
|
||||
filesystem()->directory(PATH['project'] . '/uploads/media')->ensureExists(0755, true);
|
||||
});
|
||||
|
||||
afterEach(function (): void {
|
||||
filesystem()->directory(PATH['project'] . '/entries/media')->delete();
|
||||
filesystem()->directory(PATH['project'] . '/uploads/media')->delete();
|
||||
});
|
||||
|
||||
test('test create() method', function () {
|
||||
$this->assertTrue(media()->create('foo'));
|
||||
$this->assertFalse(media()->create('foo'));
|
||||
});
|
||||
|
||||
test('test move() method', function () {
|
||||
$this->assertTrue(media()->create('foo'));
|
||||
$this->assertTrue(media()->move('foo', 'bar'));
|
||||
});
|
||||
|
||||
test('test copy() method', function () {
|
||||
$this->assertTrue(media()->create('foo'));
|
||||
$this->assertTrue(media()->create('bar'));
|
||||
$this->assertTrue(media()->copy('foo', 'bar'));
|
||||
});
|
||||
|
||||
test('test delete() method', function () {
|
||||
$this->assertTrue(media()->create('foo'));
|
||||
$this->assertTrue(media()->delete('foo'));
|
||||
});
|
@@ -3,15 +3,15 @@
|
||||
declare(strict_types=1);
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->create();
|
||||
filesystem()->directory(PATH['project'] . '/entries')->ensureExists(0755, true);
|
||||
});
|
||||
|
||||
afterEach(function (): void {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->delete();
|
||||
afterEach(function () {
|
||||
filesystem()->directory(PATH['project'] . '/entries')->delete();
|
||||
});
|
||||
|
||||
test('test content_fetch shortcode', function () {
|
||||
$this->assertTrue(content()->create('foo', ['title' => 'Foo']));
|
||||
$this->assertEquals('Foo', parsers()->shortcodes()->parse('[content_fetch id="foo" field="title"]'));
|
||||
$this->assertEquals('Bar', parsers()->shortcodes()->parse('[content_fetch id="foo" field="bar" default="Bar"]'));
|
||||
test('test entries_fetch shortcode', function () {
|
||||
$this->assertTrue(entries()->create('foo', ['title' => 'Foo']));
|
||||
$this->assertEquals('Foo', parsers()->shortcodes()->parse('[entries_fetch id="foo" field="title"]'));
|
||||
$this->assertEquals('Bar', parsers()->shortcodes()->parse('[entries_fetch id="foo" field="bar" default="Bar"]'));
|
||||
});
|
||||
|
@@ -3,15 +3,15 @@
|
||||
declare(strict_types=1);
|
||||
|
||||
beforeEach(function() {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->create();
|
||||
filesystem()->directory(PATH['project'] . '/entries')->ensureExists(0755, true);
|
||||
});
|
||||
|
||||
afterEach(function (): void {
|
||||
filesystem()->directory(PATH['project'] . '/entries/content')->delete();
|
||||
afterEach(function () {
|
||||
filesystem()->directory(PATH['project'] . '/entries')->delete();
|
||||
});
|
||||
|
||||
test('test raw shortcode', function () {
|
||||
$this->assertTrue(content()->create('foo', ['title' => 'Foo']));
|
||||
$this->assertEquals('[content_fetch id="foo" field="title"]',
|
||||
parsers()->shortcodes()->parse('[raw][content_fetch id="foo" field="title"][/raw]'));
|
||||
test('test raw shortcode', function () {
|
||||
$this->assertTrue(entries()->create('foo', ['title' => 'Foo']));
|
||||
$this->assertEquals('[entries_fetch id="foo" field="title"]',
|
||||
parsers()->shortcodes()->parse('[raw][entries_fetch id="foo" field="title"][/raw]'));
|
||||
});
|
||||
|
Reference in New Issue
Block a user