diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ThumbnailerTest.php | 64 | ||||
-rw-r--r-- | tests/Updater/UpdaterTest.php | 15 | ||||
-rw-r--r-- | tests/utils/config/configJson.json.php | 70 | ||||
-rw-r--r-- | tests/utils/config/wt.json | 12 |
4 files changed, 134 insertions, 27 deletions
diff --git a/tests/ThumbnailerTest.php b/tests/ThumbnailerTest.php index db109321..c04b8fb5 100644 --- a/tests/ThumbnailerTest.php +++ b/tests/ThumbnailerTest.php | |||
@@ -1,7 +1,10 @@ | |||
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | require_once 'application/Thumbnailer.php'; | 3 | namespace Shaarli; |
4 | require_once 'application/config/ConfigManager.php'; | 4 | |
5 | use PHPUnit\Framework\TestCase; | ||
6 | use Shaarli\Config\ConfigManager; | ||
7 | use WebThumbnailer\Application\ConfigManager as WTConfigManager; | ||
5 | 8 | ||
6 | /** | 9 | /** |
7 | * Class ThumbnailerTest | 10 | * Class ThumbnailerTest |
@@ -11,31 +14,48 @@ require_once 'application/config/ConfigManager.php'; | |||
11 | * 1. the thumbnailer library is itself tested | 14 | * 1. the thumbnailer library is itself tested |
12 | * 2. we don't want to make too many external requests during the tests | 15 | * 2. we don't want to make too many external requests during the tests |
13 | */ | 16 | */ |
14 | class ThumbnailerTest extends PHPUnit_Framework_TestCase | 17 | class ThumbnailerTest extends TestCase |
15 | { | 18 | { |
19 | const WIDTH = 190; | ||
20 | |||
21 | const HEIGHT = 210; | ||
22 | |||
16 | /** | 23 | /** |
17 | * Test a thumbnail with a custom size. | 24 | * @var Thumbnailer; |
18 | */ | 25 | */ |
19 | public function testThumbnailValid() | 26 | protected $thumbnailer; |
27 | |||
28 | public function setUp() | ||
20 | { | 29 | { |
21 | $conf = new ConfigManager('tests/utils/config/configJson'); | 30 | $conf = new ConfigManager('tests/utils/config/configJson'); |
22 | $width = 200; | 31 | $conf->set('thumbnails.width', self::WIDTH); |
23 | $height = 200; | 32 | $conf->set('thumbnails.height', self::HEIGHT); |
24 | $conf->set('thumbnails.width', $width); | 33 | $conf->set('dev.debug', true); |
25 | $conf->set('thumbnails.height', $height); | 34 | |
35 | $this->thumbnailer = new Thumbnailer($conf); | ||
36 | // cache files in the sandbox | ||
37 | WTConfigManager::addFile('tests/utils/config/wt.json'); | ||
38 | } | ||
39 | |||
40 | public function tearDown() | ||
41 | { | ||
42 | $this->rrmdirContent('sandbox/'); | ||
43 | } | ||
26 | 44 | ||
27 | $thumbnailer = new Thumbnailer($conf); | 45 | /** |
28 | $thumb = $thumbnailer->get('https://github.com/shaarli/Shaarli/'); | 46 | * Test a thumbnail with a custom size. |
47 | */ | ||
48 | public function testThumbnailValid() | ||
49 | { | ||
50 | $thumb = $this->thumbnailer->get('https://github.com/shaarli/Shaarli/'); | ||
29 | $this->assertNotFalse($thumb); | 51 | $this->assertNotFalse($thumb); |
30 | $image = imagecreatefromstring(file_get_contents($thumb)); | 52 | $image = imagecreatefromstring(file_get_contents($thumb)); |
31 | $this->assertEquals($width, imagesx($image)); | 53 | $this->assertEquals(self::WIDTH, imagesx($image)); |
32 | $this->assertEquals($height, imagesy($image)); | 54 | $this->assertEquals(self::HEIGHT, imagesy($image)); |
33 | } | 55 | } |
34 | 56 | ||
35 | /** | 57 | /** |
36 | * Test a thumbnail that can't be retrieved. | 58 | * Test a thumbnail that can't be retrieved. |
37 | * | ||
38 | * @expectedException WebThumbnailer\Exception\ThumbnailNotFoundException | ||
39 | */ | 59 | */ |
40 | public function testThumbnailNotValid() | 60 | public function testThumbnailNotValid() |
41 | { | 61 | { |
@@ -48,4 +68,18 @@ class ThumbnailerTest extends PHPUnit_Framework_TestCase | |||
48 | 68 | ||
49 | ini_set('error_log', $oldlog); | 69 | ini_set('error_log', $oldlog); |
50 | } | 70 | } |
71 | |||
72 | protected function rrmdirContent($dir) { | ||
73 | if (is_dir($dir)) { | ||
74 | $objects = scandir($dir); | ||
75 | foreach ($objects as $object) { | ||
76 | if ($object != "." && $object != "..") { | ||
77 | if (is_dir($dir."/".$object)) | ||
78 | $this->rrmdirContent($dir."/".$object); | ||
79 | else | ||
80 | unlink($dir."/".$object); | ||
81 | } | ||
82 | } | ||
83 | } | ||
84 | } | ||
51 | } | 85 | } |
diff --git a/tests/Updater/UpdaterTest.php b/tests/Updater/UpdaterTest.php index 94e3c7d3..8b90fd5e 100644 --- a/tests/Updater/UpdaterTest.php +++ b/tests/Updater/UpdaterTest.php | |||
@@ -684,4 +684,19 @@ $GLOBALS[\'privateLinkByDefault\'] = true;'; | |||
684 | $this->assertEquals(4194304, $this->conf->get('general.download_max_size')); | 684 | $this->assertEquals(4194304, $this->conf->get('general.download_max_size')); |
685 | $this->assertEquals(3, $this->conf->get('general.download_timeout')); | 685 | $this->assertEquals(3, $this->conf->get('general.download_timeout')); |
686 | } | 686 | } |
687 | |||
688 | /** | ||
689 | * Test updateMethodAtomDefault with show_atom set to true. | ||
690 | * => nothing to do | ||
691 | */ | ||
692 | public function testUpdateMethodWebThumbnailerEnabled() | ||
693 | { | ||
694 | $this->conf->set('thumbnail.enable_thumbnails', true); | ||
695 | $updater = new Updater([], [], $this->conf, true); | ||
696 | $this->assertTrue($updater->updateMethodWebThumbnailer()); | ||
697 | $this->assertFalse($this->conf->exists('thumbnail')); | ||
698 | $this->assertTrue($this->conf->get('thumbnails.enabled')); | ||
699 | $this->assertEquals(125, $this->conf->get('thumbnails.width')); | ||
700 | $this->assertEquals(90, $this->conf->get('thumbnails.height')); | ||
701 | } | ||
687 | } | 702 | } |
diff --git a/tests/utils/config/configJson.json.php b/tests/utils/config/configJson.json.php index 3101b225..061d4c28 100644 --- a/tests/utils/config/configJson.json.php +++ b/tests/utils/config/configJson.json.php | |||
@@ -1,38 +1,84 @@ | |||
1 | <?php /* | 1 | <?php /* |
2 | { | 2 | { |
3 | "credentials": { | 3 | "credentials": { |
4 | "login":"root", | 4 | "login": "root", |
5 | "hash":"hash", | 5 | "hash": "hash", |
6 | "salt":"salt" | 6 | "salt": "salt" |
7 | }, | 7 | }, |
8 | "security": { | 8 | "security": { |
9 | "session_protection_disabled":false | 9 | "session_protection_disabled": false, |
10 | "ban_after": 4, | ||
11 | "ban_duration": 1800, | ||
12 | "open_shaarli": false, | ||
13 | "allowed_protocols": [ | ||
14 | "ftp", | ||
15 | "ftps", | ||
16 | "magnet" | ||
17 | ] | ||
10 | }, | 18 | }, |
11 | "general": { | 19 | "general": { |
12 | "timezone":"Europe\/Paris", | 20 | "timezone": "Europe\/Paris", |
13 | "title": "Shaarli", | 21 | "title": "Shaarli", |
14 | "header_link": "?" | 22 | "header_link": "?", |
23 | "links_per_page": 20, | ||
24 | "enabled_plugins": [ | ||
25 | "qrcode" | ||
26 | ], | ||
27 | "default_note_title": "Note: " | ||
15 | }, | 28 | }, |
16 | "privacy": { | 29 | "privacy": { |
17 | "default_private_links":true | 30 | "default_private_links": true, |
31 | "hide_public_links": false, | ||
32 | "force_login": false, | ||
33 | "hide_timestamps": false, | ||
34 | "remember_user_default": true | ||
18 | }, | 35 | }, |
19 | "redirector": { | 36 | "redirector": { |
20 | "url":"lala" | 37 | "url": "lala", |
38 | "encode_url": true | ||
21 | }, | 39 | }, |
22 | "config": { | 40 | "config": { |
23 | "foo": "bar" | 41 | "foo": "bar" |
24 | }, | 42 | }, |
25 | "resource": { | 43 | "resource": { |
26 | "datastore": "tests\/utils\/config\/datastore.php", | 44 | "datastore": "tests\/utils\/config\/datastore.php", |
27 | "data_dir": "sandbox/", | 45 | "data_dir": "sandbox\/", |
28 | "raintpl_tpl": "tpl/" | 46 | "raintpl_tpl": "tpl\/", |
47 | "config": "data\/config.php", | ||
48 | "ban_file": "data\/ipbans.php", | ||
49 | "updates": "data\/updates.txt", | ||
50 | "log": "data\/log.txt", | ||
51 | "update_check": "data\/lastupdatecheck.txt", | ||
52 | "history": "data\/history.php", | ||
53 | "theme": "default", | ||
54 | "raintpl_tmp": "tmp\/", | ||
55 | "thumbnails_cache": "cache", | ||
56 | "page_cache": "pagecache" | ||
29 | }, | 57 | }, |
30 | "plugins": { | 58 | "plugins": { |
31 | "WALLABAG_VERSION": 1 | 59 | "WALLABAG_VERSION": 1 |
32 | }, | 60 | }, |
33 | "dev": { | 61 | "dev": { |
34 | "debug": true | 62 | "debug": true |
63 | }, | ||
64 | "thumbnails": { | ||
65 | "enabled": true, | ||
66 | "width": 125, | ||
67 | "height": 90 | ||
68 | }, | ||
69 | "updates": { | ||
70 | "check_updates": false, | ||
71 | "check_updates_branch": "stable", | ||
72 | "check_updates_interval": 86400 | ||
73 | }, | ||
74 | "feed": { | ||
75 | "rss_permalinks": true, | ||
76 | "show_atom": true | ||
77 | }, | ||
78 | "translation": { | ||
79 | "language": "auto", | ||
80 | "mode": "php", | ||
81 | "extensions": [] | ||
35 | } | 82 | } |
36 | } | 83 | } |
37 | */ ?> | 84 | */ ?> \ No newline at end of file |
38 | |||
diff --git a/tests/utils/config/wt.json b/tests/utils/config/wt.json new file mode 100644 index 00000000..69ce49a6 --- /dev/null +++ b/tests/utils/config/wt.json | |||
@@ -0,0 +1,12 @@ | |||
1 | { | ||
2 | "settings": { | ||
3 | "default": { | ||
4 | "_comment": "infinite cache", | ||
5 | "cache_duration": -1, | ||
6 | "timeout": 10 | ||
7 | }, | ||
8 | "path": { | ||
9 | "cache": "sandbox/" | ||
10 | } | ||
11 | } | ||
12 | } \ No newline at end of file | ||