Commit 12bac7098d1b40130ab303d0294e6333b565eefd

Authored by Paulo Costa
1 parent 79012a4152
Exists in master

updated components

- add middleware loader
- updated composer libs
app/component/SlimMiddlewareLoader.php
@@ -0,0 +1,50 @@ @@ -0,0 +1,50 @@
  1 +<?php
  2 +/*
  3 +* Helper class to load middlewares on your Slim3 application.
  4 +* The middlewares to load can be defined in the configuration file using the
  5 +* slim_middlewares property.
  6 +*/
  7 +
  8 +namespace Fccn\WebComponents;
  9 +
  10 +class SlimMiddlewareLoader
  11 +{
  12 + private $middlewares;
  13 + private $app;
  14 +
  15 + public function __construct($app)
  16 + {
  17 + $config = \Fccn\Lib\SiteConfig::getInstance();
  18 + //load middleware classes from config file
  19 + $this->middlewares = $config->get('slim_middlewares');
  20 + $this->app = $app;
  21 + }
  22 +
  23 + /*
  24 + * loads a specific middleware in the application
  25 + */
  26 + public function load($middleware_name)
  27 + {
  28 + if (isset($this->middlewares[$middleware_name])) {
  29 + $middleware = $this->middlewares[$middleware_name];
  30 + if (!empty($middleware)) {
  31 + $this->app->add($middleware);
  32 + return true;
  33 + }
  34 + \Fccn\Lib\FileLogger::debug("SlimMiddlewareLoader::load middleware [$middleware_name] is not valid");
  35 + } else {
  36 + \Fccn\Lib\FileLogger::debug("SlimMiddlewareLoader::load there is no record for middleware [$middleware_name]");
  37 + }
  38 + return false;
  39 + }
  40 +
  41 + /*
  42 + * loads all middlewares preset in the configuration file
  43 + */
  44 + public function loadAll()
  45 + {
  46 + foreach ($this->middlewares as $name => $middleware) {
  47 + $this->load($name);
  48 + }
  49 + }
  50 +}
@@ -12,7 +12,9 @@ @@ -12,7 +12,9 @@
12 "require": { 12 "require": {
13 "php": ">=5.5.0", 13 "php": ">=5.5.0",
14 "fccn/webapp-tools-common": "^1.0", 14 "fccn/webapp-tools-common": "^1.0",
15 - "fccn/webapp-tools-translate": "^1.0" 15 + "fccn/webapp-tools-translate": "^1.0",
  16 + "jswhetstone/twig-extension": "dev-master",
  17 + "twig/extensions": "^1.5"
16 }, 18 },
17 "autoload":{ 19 "autoload":{
18 "psr-4": { 20 "psr-4": {
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", 4 "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5 "This file is @generated automatically" 5 "This file is @generated automatically"
6 ], 6 ],
7 - "content-hash": "e0e57d0165de752dafb01df0ce671b7a", 7 + "content-hash": "af14fa5939f102fc7b51ba30e13dfacf",
8 "packages": [ 8 "packages": [
9 { 9 {
10 "name": "fccn/webapp-tools-common", 10 "name": "fccn/webapp-tools-common",
@@ -54,30 +54,34 @@ @@ -54,30 +54,34 @@
54 }, 54 },
55 { 55 {
56 "name": "fccn/webapp-tools-translate", 56 "name": "fccn/webapp-tools-translate",
57 - "version": "1.0.1", 57 + "version": "1.1",
58 "source": { 58 "source": {
59 "type": "git", 59 "type": "git",
60 "url": "https://github.com/fccn/wt-translate.git", 60 "url": "https://github.com/fccn/wt-translate.git",
61 - "reference": "c8a264cd64edc8fd5902f01e3630a6bba665d499" 61 + "reference": "fdde95f2090e7496c53473f7612b293cfe318e4f"
62 }, 62 },
63 "dist": { 63 "dist": {
64 "type": "zip", 64 "type": "zip",
65 - "url": "https://api.github.com/repos/fccn/wt-translate/zipball/c8a264cd64edc8fd5902f01e3630a6bba665d499",  
66 - "reference": "c8a264cd64edc8fd5902f01e3630a6bba665d499", 65 + "url": "https://api.github.com/repos/fccn/wt-translate/zipball/fdde95f2090e7496c53473f7612b293cfe318e4f",
  66 + "reference": "fdde95f2090e7496c53473f7612b293cfe318e4f",
67 "shasum": "" 67 "shasum": ""
68 }, 68 },
69 "require": { 69 "require": {
70 "fccn/webapp-tools-common": "^1.0", 70 "fccn/webapp-tools-common": "^1.0",
71 - "php": ">=5.5.0", 71 + "php": ">=7.0",
72 "slim/twig-view": "^2.3" 72 "slim/twig-view": "^2.3"
73 }, 73 },
74 "require-dev": { 74 "require-dev": {
75 - "codeception/codeception": "^2.3" 75 + "codeception/codeception": "^2.3",
  76 + "herloct/codeception-slim-module": "^1.1",
  77 + "slim/slim": "^3.9",
  78 + "twig/extensions": "^1.5"
76 }, 79 },
77 "type": "library", 80 "type": "library",
78 "autoload": { 81 "autoload": {
79 "psr-4": { 82 "psr-4": {
80 - "Fccn\\Lib\\": "src" 83 + "Fccn\\Lib\\": "src",
  84 + "Fccn\\WebComponents\\": "src/web_components"
81 } 85 }
82 }, 86 },
83 "notification-url": "https://packagist.org/downloads/", 87 "notification-url": "https://packagist.org/downloads/",
@@ -96,7 +100,7 @@ @@ -96,7 +100,7 @@
96 "gettex", 100 "gettex",
97 "webapp-tools" 101 "webapp-tools"
98 ], 102 ],
99 - "time": "2017-11-06T16:14:27+00:00" 103 + "time": "2018-01-26T10:57:54+00:00"
100 }, 104 },
101 { 105 {
102 "name": "ircmaxell/random-lib", 106 "name": "ircmaxell/random-lib",
@@ -200,6 +204,33 @@ @@ -200,6 +204,33 @@
200 "time": "2015-03-20T14:31:23+00:00" 204 "time": "2015-03-20T14:31:23+00:00"
201 }, 205 },
202 { 206 {
  207 + "name": "jswhetstone/twig-extension",
  208 + "version": "dev-master",
  209 + "source": {
  210 + "type": "git",
  211 + "url": "https://github.com/jswhetstone/twig-extension.git",
  212 + "reference": "9a8b18d9a263b89a3639fd141d8a8f7f4bc4e303"
  213 + },
  214 + "dist": {
  215 + "type": "zip",
  216 + "url": "https://api.github.com/repos/jswhetstone/twig-extension/zipball/9a8b18d9a263b89a3639fd141d8a8f7f4bc4e303",
  217 + "reference": "9a8b18d9a263b89a3639fd141d8a8f7f4bc4e303",
  218 + "shasum": ""
  219 + },
  220 + "type": "library",
  221 + "autoload": {
  222 + "psr-0": {
  223 + "JSW\\Twig": "src"
  224 + }
  225 + },
  226 + "notification-url": "https://packagist.org/downloads/",
  227 + "license": [
  228 + "WTFPL"
  229 + ],
  230 + "description": "A Twig extension providing convenience methods for context-specific HTML classes.",
  231 + "time": "2014-06-18T19:03:05+00:00"
  232 + },
  233 + {
203 "name": "monolog/monolog", 234 "name": "monolog/monolog",
204 "version": "1.23.0", 235 "version": "1.23.0",
205 "source": { 236 "source": {
@@ -484,6 +515,62 @@ @@ -484,6 +515,62 @@
484 "time": "2017-10-11T12:05:26+00:00" 515 "time": "2017-10-11T12:05:26+00:00"
485 }, 516 },
486 { 517 {
  518 + "name": "twig/extensions",
  519 + "version": "v1.5.1",
  520 + "source": {
  521 + "type": "git",
  522 + "url": "https://github.com/twigphp/Twig-extensions.git",
  523 + "reference": "d188c76168b853481cc75879ea045bf93d718e9c"
  524 + },
  525 + "dist": {
  526 + "type": "zip",
  527 + "url": "https://api.github.com/repos/twigphp/Twig-extensions/zipball/d188c76168b853481cc75879ea045bf93d718e9c",
  528 + "reference": "d188c76168b853481cc75879ea045bf93d718e9c",
  529 + "shasum": ""
  530 + },
  531 + "require": {
  532 + "twig/twig": "~1.27|~2.0"
  533 + },
  534 + "require-dev": {
  535 + "symfony/phpunit-bridge": "~3.3@dev",
  536 + "symfony/translation": "~2.3|~3.0"
  537 + },
  538 + "suggest": {
  539 + "symfony/translation": "Allow the time_diff output to be translated"
  540 + },
  541 + "type": "library",
  542 + "extra": {
  543 + "branch-alias": {
  544 + "dev-master": "1.5-dev"
  545 + }
  546 + },
  547 + "autoload": {
  548 + "psr-0": {
  549 + "Twig_Extensions_": "lib/"
  550 + },
  551 + "psr-4": {
  552 + "Twig\\Extensions\\": "src/"
  553 + }
  554 + },
  555 + "notification-url": "https://packagist.org/downloads/",
  556 + "license": [
  557 + "MIT"
  558 + ],
  559 + "authors": [
  560 + {
  561 + "name": "Fabien Potencier",
  562 + "email": "fabien@symfony.com"
  563 + }
  564 + ],
  565 + "description": "Common additional features for Twig that do not directly belong in core",
  566 + "homepage": "http://twig.sensiolabs.org/doc/extensions/index.html",
  567 + "keywords": [
  568 + "i18n",
  569 + "text"
  570 + ],
  571 + "time": "2017-06-08T18:19:53+00:00"
  572 + },
  573 + {
487 "name": "twig/twig", 574 "name": "twig/twig",
488 "version": "v2.4.4", 575 "version": "v2.4.4",
489 "source": { 576 "source": {
@@ -612,20 +699,21 @@ @@ -612,20 +699,21 @@
612 }, 699 },
613 { 700 {
614 "name": "codeception/codeception", 701 "name": "codeception/codeception",
615 - "version": "2.3.7", 702 + "version": "2.3.8",
616 "source": { 703 "source": {
617 "type": "git", 704 "type": "git",
618 "url": "https://github.com/Codeception/Codeception.git", 705 "url": "https://github.com/Codeception/Codeception.git",
619 - "reference": "151de88277878adc18784ef3eaddd87f4a2fdc14" 706 + "reference": "43eade17a8cd68e9cde401e8585b09d11d41b12d"
620 }, 707 },
621 "dist": { 708 "dist": {
622 "type": "zip", 709 "type": "zip",
623 - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/151de88277878adc18784ef3eaddd87f4a2fdc14",  
624 - "reference": "151de88277878adc18784ef3eaddd87f4a2fdc14", 710 + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/43eade17a8cd68e9cde401e8585b09d11d41b12d",
  711 + "reference": "43eade17a8cd68e9cde401e8585b09d11d41b12d",
625 "shasum": "" 712 "shasum": ""
626 }, 713 },
627 "require": { 714 "require": {
628 "behat/gherkin": "~4.4.0", 715 "behat/gherkin": "~4.4.0",
  716 + "codeception/stub": "^1.0",
629 "ext-json": "*", 717 "ext-json": "*",
630 "ext-mbstring": "*", 718 "ext-mbstring": "*",
631 "facebook/webdriver": ">=1.1.3 <2.0", 719 "facebook/webdriver": ">=1.1.3 <2.0",
@@ -634,7 +722,6 @@ @@ -634,7 +722,6 @@
634 "php": ">=5.4.0 <8.0", 722 "php": ">=5.4.0 <8.0",
635 "phpunit/php-code-coverage": ">=2.2.4 <6.0", 723 "phpunit/php-code-coverage": ">=2.2.4 <6.0",
636 "phpunit/phpunit": ">=4.8.28 <5.0.0 || >=5.6.3 <7.0", 724 "phpunit/phpunit": ">=4.8.28 <5.0.0 || >=5.6.3 <7.0",
637 - "phpunit/phpunit-mock-objects": ">2.3 <5.0",  
638 "sebastian/comparator": ">1.1 <3.0", 725 "sebastian/comparator": ">1.1 <3.0",
639 "sebastian/diff": ">=1.4 <3.0", 726 "sebastian/diff": ">=1.4 <3.0",
640 "symfony/browser-kit": ">=2.7 <5.0", 727 "symfony/browser-kit": ">=2.7 <5.0",
@@ -649,8 +736,6 @@ @@ -649,8 +736,6 @@
649 "codeception/specify": "~0.3", 736 "codeception/specify": "~0.3",
650 "facebook/graph-sdk": "~5.3", 737 "facebook/graph-sdk": "~5.3",
651 "flow/jsonpath": "~0.2", 738 "flow/jsonpath": "~0.2",
652 - "league/factory-muffin": "^3.0",  
653 - "league/factory-muffin-faker": "^1.0",  
654 "monolog/monolog": "~1.8", 739 "monolog/monolog": "~1.8",
655 "pda/pheanstalk": "~3.0", 740 "pda/pheanstalk": "~3.0",
656 "php-amqplib/php-amqplib": "~2.4", 741 "php-amqplib/php-amqplib": "~2.4",
@@ -704,7 +789,40 @@ @@ -704,7 +789,40 @@
704 "functional testing", 789 "functional testing",
705 "unit testing" 790 "unit testing"
706 ], 791 ],
707 - "time": "2017-12-12T04:22:17+00:00" 792 + "time": "2018-01-27T22:47:33+00:00"
  793 + },
  794 + {
  795 + "name": "codeception/stub",
  796 + "version": "1.0.1",
  797 + "source": {
  798 + "type": "git",
  799 + "url": "https://github.com/Codeception/Stub.git",
  800 + "reference": "673ea54cdd7141e0a5138ad78aaa60751912f573"
  801 + },
  802 + "dist": {
  803 + "type": "zip",
  804 + "url": "https://api.github.com/repos/Codeception/Stub/zipball/673ea54cdd7141e0a5138ad78aaa60751912f573",
  805 + "reference": "673ea54cdd7141e0a5138ad78aaa60751912f573",
  806 + "shasum": ""
  807 + },
  808 + "require": {
  809 + "phpunit/phpunit-mock-objects": "^2.3|^3.0|^4.0|^5.0"
  810 + },
  811 + "require-dev": {
  812 + "phpunit/phpunit": "^4.8|^5.0|^6.0|^7.0"
  813 + },
  814 + "type": "library",
  815 + "autoload": {
  816 + "psr-4": {
  817 + "Codeception\\": "src/"
  818 + }
  819 + },
  820 + "notification-url": "https://packagist.org/downloads/",
  821 + "license": [
  822 + "MIT"
  823 + ],
  824 + "description": "Flexible Stub wrapper for PHPUnit's Mock Builder",
  825 + "time": "2018-01-27T00:37:17+00:00"
708 }, 826 },
709 { 827 {
710 "name": "container-interop/container-interop", 828 "name": "container-interop/container-interop",
@@ -1314,16 +1432,16 @@ @@ -1314,16 +1432,16 @@
1314 }, 1432 },
1315 { 1433 {
1316 "name": "phpdocumentor/reflection-docblock", 1434 "name": "phpdocumentor/reflection-docblock",
1317 - "version": "4.2.0", 1435 + "version": "4.3.0",
1318 "source": { 1436 "source": {
1319 "type": "git", 1437 "type": "git",
1320 "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", 1438 "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
1321 - "reference": "66465776cfc249844bde6d117abff1d22e06c2da" 1439 + "reference": "94fd0001232e47129dd3504189fa1c7225010d08"
1322 }, 1440 },
1323 "dist": { 1441 "dist": {
1324 "type": "zip", 1442 "type": "zip",
1325 - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/66465776cfc249844bde6d117abff1d22e06c2da",  
1326 - "reference": "66465776cfc249844bde6d117abff1d22e06c2da", 1443 + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08",
  1444 + "reference": "94fd0001232e47129dd3504189fa1c7225010d08",
1327 "shasum": "" 1445 "shasum": ""
1328 }, 1446 },
1329 "require": { 1447 "require": {
@@ -1361,7 +1479,7 @@ @@ -1361,7 +1479,7 @@
1361 } 1479 }
1362 ], 1480 ],
1363 "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", 1481 "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
1364 - "time": "2017-11-27T17:38:31+00:00" 1482 + "time": "2017-11-30T07:14:17+00:00"
1365 }, 1483 },
1366 { 1484 {
1367 "name": "phpdocumentor/type-resolver", 1485 "name": "phpdocumentor/type-resolver",
@@ -1724,16 +1842,16 @@ @@ -1724,16 +1842,16 @@
1724 }, 1842 },
1725 { 1843 {
1726 "name": "phpunit/phpunit", 1844 "name": "phpunit/phpunit",
1727 - "version": "6.4.4", 1845 + "version": "6.5.5",
1728 "source": { 1846 "source": {
1729 "type": "git", 1847 "type": "git",
1730 "url": "https://github.com/sebastianbergmann/phpunit.git", 1848 "url": "https://github.com/sebastianbergmann/phpunit.git",
1731 - "reference": "562f7dc75d46510a4ed5d16189ae57fbe45a9932" 1849 + "reference": "83d27937a310f2984fd575686138597147bdc7df"
1732 }, 1850 },
1733 "dist": { 1851 "dist": {
1734 "type": "zip", 1852 "type": "zip",
1735 - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/562f7dc75d46510a4ed5d16189ae57fbe45a9932",  
1736 - "reference": "562f7dc75d46510a4ed5d16189ae57fbe45a9932", 1853 + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/83d27937a310f2984fd575686138597147bdc7df",
  1854 + "reference": "83d27937a310f2984fd575686138597147bdc7df",
1737 "shasum": "" 1855 "shasum": ""
1738 }, 1856 },
1739 "require": { 1857 "require": {
@@ -1747,12 +1865,12 @@ @@ -1747,12 +1865,12 @@
1747 "phar-io/version": "^1.0", 1865 "phar-io/version": "^1.0",
1748 "php": "^7.0", 1866 "php": "^7.0",
1749 "phpspec/prophecy": "^1.7", 1867 "phpspec/prophecy": "^1.7",
1750 - "phpunit/php-code-coverage": "^5.2.2",  
1751 - "phpunit/php-file-iterator": "^1.4.2", 1868 + "phpunit/php-code-coverage": "^5.3",
  1869 + "phpunit/php-file-iterator": "^1.4.3",
1752 "phpunit/php-text-template": "^1.2.1", 1870 "phpunit/php-text-template": "^1.2.1",
1753 "phpunit/php-timer": "^1.0.9", 1871 "phpunit/php-timer": "^1.0.9",
1754 - "phpunit/phpunit-mock-objects": "^4.0.3",  
1755 - "sebastian/comparator": "^2.0.2", 1872 + "phpunit/phpunit-mock-objects": "^5.0.5",
  1873 + "sebastian/comparator": "^2.1",
1756 "sebastian/diff": "^2.0", 1874 "sebastian/diff": "^2.0",
1757 "sebastian/environment": "^3.1", 1875 "sebastian/environment": "^3.1",
1758 "sebastian/exporter": "^3.1", 1876 "sebastian/exporter": "^3.1",
@@ -1778,7 +1896,7 @@ @@ -1778,7 +1896,7 @@
1778 "type": "library", 1896 "type": "library",
1779 "extra": { 1897 "extra": {
1780 "branch-alias": { 1898 "branch-alias": {
1781 - "dev-master": "6.4.x-dev" 1899 + "dev-master": "6.5.x-dev"
1782 } 1900 }
1783 }, 1901 },
1784 "autoload": { 1902 "autoload": {
@@ -1804,33 +1922,33 @@ @@ -1804,33 +1922,33 @@
1804 "testing", 1922 "testing",
1805 "xunit" 1923 "xunit"
1806 ], 1924 ],
1807 - "time": "2017-11-08T11:26:09+00:00" 1925 + "time": "2017-12-17T06:31:19+00:00"
1808 }, 1926 },
1809 { 1927 {
1810 "name": "phpunit/phpunit-mock-objects", 1928 "name": "phpunit/phpunit-mock-objects",
1811 - "version": "4.0.4", 1929 + "version": "5.0.6",
1812 "source": { 1930 "source": {
1813 "type": "git", 1931 "type": "git",
1814 "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", 1932 "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
1815 - "reference": "2f789b59ab89669015ad984afa350c4ec577ade0" 1933 + "reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf"
1816 }, 1934 },
1817 "dist": { 1935 "dist": {
1818 "type": "zip", 1936 "type": "zip",
1819 - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/2f789b59ab89669015ad984afa350c4ec577ade0",  
1820 - "reference": "2f789b59ab89669015ad984afa350c4ec577ade0", 1937 + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/33fd41a76e746b8fa96d00b49a23dadfa8334cdf",
  1938 + "reference": "33fd41a76e746b8fa96d00b49a23dadfa8334cdf",
1821 "shasum": "" 1939 "shasum": ""
1822 }, 1940 },
1823 "require": { 1941 "require": {
1824 "doctrine/instantiator": "^1.0.5", 1942 "doctrine/instantiator": "^1.0.5",
1825 "php": "^7.0", 1943 "php": "^7.0",
1826 "phpunit/php-text-template": "^1.2.1", 1944 "phpunit/php-text-template": "^1.2.1",
1827 - "sebastian/exporter": "^3.0" 1945 + "sebastian/exporter": "^3.1"
1828 }, 1946 },
1829 "conflict": { 1947 "conflict": {
1830 "phpunit/phpunit": "<6.0" 1948 "phpunit/phpunit": "<6.0"
1831 }, 1949 },
1832 "require-dev": { 1950 "require-dev": {
1833 - "phpunit/phpunit": "^6.0" 1951 + "phpunit/phpunit": "^6.5"
1834 }, 1952 },
1835 "suggest": { 1953 "suggest": {
1836 "ext-soap": "*" 1954 "ext-soap": "*"
@@ -1838,7 +1956,7 @@ @@ -1838,7 +1956,7 @@
1838 "type": "library", 1956 "type": "library",
1839 "extra": { 1957 "extra": {
1840 "branch-alias": { 1958 "branch-alias": {
1841 - "dev-master": "4.0.x-dev" 1959 + "dev-master": "5.0.x-dev"
1842 } 1960 }
1843 }, 1961 },
1844 "autoload": { 1962 "autoload": {
@@ -1853,7 +1971,7 @@ @@ -1853,7 +1971,7 @@
1853 "authors": [ 1971 "authors": [
1854 { 1972 {
1855 "name": "Sebastian Bergmann", 1973 "name": "Sebastian Bergmann",
1856 - "email": "sb@sebastian-bergmann.de", 1974 + "email": "sebastian@phpunit.de",
1857 "role": "lead" 1975 "role": "lead"
1858 } 1976 }
1859 ], 1977 ],
@@ -1863,7 +1981,7 @@ @@ -1863,7 +1981,7 @@
1863 "mock", 1981 "mock",
1864 "xunit" 1982 "xunit"
1865 ], 1983 ],
1866 - "time": "2017-08-03T14:08:16+00:00" 1984 + "time": "2018-01-06T05:45:45+00:00"
1867 }, 1985 },
1868 { 1986 {
1869 "name": "pimple/pimple", 1987 "name": "pimple/pimple",
@@ -3140,7 +3258,9 @@ @@ -3140,7 +3258,9 @@
3140 ], 3258 ],
3141 "aliases": [], 3259 "aliases": [],
3142 "minimum-stability": "stable", 3260 "minimum-stability": "stable",
3143 - "stability-flags": [], 3261 + "stability-flags": {
  3262 + "jswhetstone/twig-extension": 20
  3263 + },
3144 "prefer-stable": false, 3264 "prefer-stable": false,
3145 "prefer-lowest": false, 3265 "prefer-lowest": false,
3146 "platform": { 3266 "platform": {
tests/_data/config.php
@@ -30,8 +30,15 @@ $c = array( @@ -30,8 +30,15 @@ $c = array(
30 30
31 #---- External libraries loader -------------------- 31 #---- External libraries loader --------------------
32 "ext_libs_loader_service_name" => 'loader', 32 "ext_libs_loader_service_name" => 'loader',
33 - 33 +
34 "ext_libs" => array( 34 "ext_libs" => array(
35 "my_lib" => __DIR__."/vendor/test/lib.js" 35 "my_lib" => __DIR__."/vendor/test/lib.js"
36 ), 36 ),
  37 +
  38 +#---- Slim Middleware loader --------------------
  39 +
  40 + "slim_middlewares" => array(
  41 + "my_test_middleware" => new \Fccn\Tests\MyMiddleware(),
  42 + ),
  43 +
37 ); 44 );
tests/_support/MyMiddleware.php
@@ -0,0 +1,36 @@ @@ -0,0 +1,36 @@
  1 +<?php
  2 +
  3 +/*
  4 +* Sample middleware class to be used on tests
  5 +*/
  6 +
  7 +namespace Fccn\Tests;
  8 +
  9 +use Psr\Http\Message\ServerRequestInterface as Request;
  10 +use Psr\Http\Message\ResponseInterface as Response;
  11 +
  12 +class MyMiddleware
  13 +{
  14 + /*
  15 + * Middleware constructor
  16 + *
  17 + */
  18 + public function __construct()
  19 + {
  20 + }
  21 +
  22 + /**
  23 + * Locale middleware invokable class
  24 + *
  25 + * @param \Psr\Http\Message\ServerRequestInterface $request PSR7 request
  26 + * @param \Psr\Http\Message\ResponseInterface $response PSR7 response
  27 + * @param callable $next Next middleware
  28 + *
  29 + * @return \Psr\Http\Message\ResponseInterface
  30 + */
  31 + public function __invoke(Request $req, Response $resp, callable $next)
  32 + {
  33 + $response->getBody()->write('MY MIDDLEWARE INSERTION');
  34 + return $next($req, $resp);
  35 + }
  36 +}
tests/_support/_generated/AcceptanceTesterActions.php
1 -<?php //[STAMP] 0039bd0f73f4e8daa757ba67b319aa49 1 +<?php //[STAMP] 359d6fae1f1f3c1ec599797e12b9016e
2 namespace _generated; 2 namespace _generated;
3 3
4 // This class was automatically generated by build task 4 // This class was automatically generated by build task
5 // You should not change it manually as it will be overwritten on next build 5 // You should not change it manually as it will be overwritten on next build
6 // @codingStandardsIgnoreFile 6 // @codingStandardsIgnoreFile
7 7
8 -use Codeception\Module\PhpBrowser;  
9 -use Helper\Acceptance;  
10 -  
11 trait AcceptanceTesterActions 8 trait AcceptanceTesterActions
12 { 9 {
13 /** 10 /**
tests/_support/_generated/FunctionalTesterActions.php
1 -<?php //[STAMP] ae06983dfa6bdba4e227e9d1dda76a9e 1 +<?php //[STAMP] 1cd7ceccc2583c1f869103f9abc01698
2 namespace _generated; 2 namespace _generated;
3 3
4 // This class was automatically generated by build task 4 // This class was automatically generated by build task
5 // You should not change it manually as it will be overwritten on next build 5 // You should not change it manually as it will be overwritten on next build
6 // @codingStandardsIgnoreFile 6 // @codingStandardsIgnoreFile
7 7
8 -use Helper\Functional;  
9 -use Herloct\Codeception\Module\Slim;  
10 -use Codeception\Module\REST;  
11 -  
12 trait FunctionalTesterActions 8 trait FunctionalTesterActions
13 { 9 {
14 /** 10 /**
@@ -2378,6 +2374,37 @@ trait FunctionalTesterActions @@ -2378,6 +2374,37 @@ trait FunctionalTesterActions
2378 /** 2374 /**
2379 * [!] Method is generated. Documentation taken from corresponding module. 2375 * [!] Method is generated. Documentation taken from corresponding module.
2380 * 2376 *
  2377 + * Allows to send REST request using AWS Authorization
  2378 + * Only works with PhpBrowser
  2379 + * Example
  2380 + * Config -
  2381 + *
  2382 + * modules:
  2383 + * enabled:
  2384 + * - REST:
  2385 + * aws:
  2386 + * key: accessKey
  2387 + * secret: accessSecret
  2388 + * service: awsService
  2389 + * region: awsRegion
  2390 + *
  2391 + * ```php
  2392 + * <?php
  2393 + * $I->amAWSAuthenticated();
  2394 + * ?>
  2395 + * ```
  2396 + * @param array $additionalAWSConfig
  2397 + * @throws ModuleException
  2398 + * @see \Codeception\Module\REST::amAWSAuthenticated()
  2399 + */
  2400 + public function amAWSAuthenticated($additionalAWSConfig = null) {
  2401 + return $this->getScenario()->runStep(new \Codeception\Step\Condition('amAWSAuthenticated', func_get_args()));
  2402 + }
  2403 +
  2404 +
  2405 + /**
  2406 + * [!] Method is generated. Documentation taken from corresponding module.
  2407 + *
2381 * Sends a POST request to given uri. Parameters and files can be provided separately. 2408 * Sends a POST request to given uri. Parameters and files can be provided separately.
2382 * 2409 *
2383 * Example: 2410 * Example:
tests/_support/_generated/UnitTesterActions.php
1 -<?php //[STAMP] 5648e2ecd2668319703f108f1329e8a8 1 +<?php //[STAMP] 944b755085a310113b19d30e9d04d255
2 namespace _generated; 2 namespace _generated;
3 3
4 // This class was automatically generated by build task 4 // This class was automatically generated by build task
5 // You should not change it manually as it will be overwritten on next build 5 // You should not change it manually as it will be overwritten on next build
6 // @codingStandardsIgnoreFile 6 // @codingStandardsIgnoreFile
7 7
8 -use Codeception\Module\Asserts;  
9 -use Helper\Unit;  
10 -  
11 trait UnitTesterActions 8 trait UnitTesterActions
12 { 9 {
13 /** 10 /**
tests/unit/SlimMiddlewareLoaderTest.php
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
  1 +<?php
  2 +
  3 +
  4 +class SlimMiddlewareLoaderTest extends \Codeception\Test\Unit
  5 +{
  6 + /**
  7 + * @var \UnitTester
  8 + */
  9 + protected $tester;
  10 + private $config;
  11 +
  12 + protected function _before()
  13 + {
  14 + $this->config = \Fccn\Lib\SiteConfig::getInstance();
  15 + $this->app = new Slim\App();
  16 + }
  17 +
  18 + // tests
  19 + public function testLoad()
  20 + {
  21 + $loader = new \Fccn\WebComponents\SlimMiddlewareLoader($this->app);
  22 + $this->assertTrue($loader->load('my_test_middleware'));
  23 + }
  24 +}