Passed
Push — master ( 2eaaad...ad5f8f )
by Aimeos
15:24 queued 12:30
created

TestHelperJqadm::getView()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 47
Code Lines 30

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 2
eloc 30
c 2
b 0
f 0
nc 2
nop 2
dl 0
loc 47
rs 9.44
1
<?php
2
3
4
/**
5
 * @license LGPLv3, https://opensource.org/licenses/LGPL-3.0
6
 * @copyright Aimeos (aimeos.org), 2021
7
 */
8
class TestHelperJqadm
9
{
10
	private static $aimeos;
11
	private static $context = array();
12
13
14
	public static function bootstrap()
15
	{
16
		$aimeos = self::getAimeos();
17
18
		$includepaths = $aimeos->getIncludePaths();
19
		$includepaths[] = get_include_path();
20
		set_include_path( implode( PATH_SEPARATOR, $includepaths ) );
21
	}
22
23
24
	public static function getAimeos()
25
	{
26
		if( !isset( self::$aimeos ) )
27
		{
28
			require_once 'Bootstrap.php';
29
			spl_autoload_register( 'Aimeos\\Bootstrap::autoload' );
30
31
			self::$aimeos = new \Aimeos\Bootstrap();
32
		}
33
34
		return self::$aimeos;
35
	}
36
37
38
	public static function getContext( $site = 'unittest' )
39
	{
40
		if( !isset( self::$context[$site] ) ) {
41
			self::$context[$site] = self::createContext( $site );
42
		}
43
44
		return clone self::$context[$site];
45
	}
46
47
48
	public static function view( $site = 'unittest', \Aimeos\MW\Config\Iface $config = null )
49
	{
50
		if( $config === null ) {
51
			$config = self::getContext( $site )->getConfig();
52
		}
53
54
		$view = new \Aimeos\MW\View\Standard( self::getTemplatePaths() );
55
56
		$helper = new \Aimeos\MW\View\Helper\Param\Standard( $view, ['site' => 'unittest'] );
57
		$view->addHelper( 'param', $helper );
58
59
		$helper = new \Aimeos\MW\View\Helper\Access\All( $view );
60
		$view->addHelper( 'access', $helper );
61
62
		$trans = new \Aimeos\MW\Translation\None( 'de_DE' );
63
		$helper = new \Aimeos\MW\View\Helper\Translate\Standard( $view, $trans );
64
		$view->addHelper( 'translate', $helper );
65
66
		$helper = new \Aimeos\MW\View\Helper\Url\Standard( $view, 'http://baseurl' );
67
		$view->addHelper( 'url', $helper );
68
69
		$helper = new \Aimeos\MW\View\Helper\Number\Standard( $view, '.', '' );
70
		$view->addHelper( 'number', $helper );
71
72
		$helper = new \Aimeos\MW\View\Helper\Date\Standard( $view, 'Y-m-d' );
73
		$view->addHelper( 'date', $helper );
74
75
		$config = new \Aimeos\MW\Config\Decorator\Protect( $config, array( 'admin', 'client/html', 'controller/jsonadm', 'resource/fs/baseurl' ) );
76
		$helper = new \Aimeos\MW\View\Helper\Config\Standard( $view, $config );
77
		$view->addHelper( 'config', $helper );
78
79
		$helper = new \Aimeos\MW\View\Helper\Session\Standard( $view, new \Aimeos\MW\Session\None() );
80
		$view->addHelper( 'session', $helper );
81
82
		$psr17Factory = new \Nyholm\Psr7\Factory\Psr17Factory();
83
		$helper = new \Aimeos\MW\View\Helper\Request\Standard( $view, $psr17Factory->createServerRequest( 'GET', 'https://aimeos.org' ) );
84
		$view->addHelper( 'request', $helper );
85
86
		$helper = new \Aimeos\MW\View\Helper\Response\Standard( $view, $psr17Factory->createResponse() );
87
		$view->addHelper( 'response', $helper );
88
89
		$helper = new \Aimeos\MW\View\Helper\Csrf\Standard( $view, '_csrf_token', '_csrf_value' );
90
		$view->addHelper( 'csrf', $helper );
91
92
		$view->pageSitePath = [];
93
94
		return $view;
95
	}
96
97
98
	public static function getTemplatePaths()
99
	{
100
		return self::getAimeos()->getTemplatePaths( 'admin/jqadm/templates' );
101
	}
102
103
104
	private static function createContext( $site )
105
	{
106
		$ctx = new \Aimeos\MShop\Context\Item\Standard();
107
		$aimeos = self::getAimeos();
108
109
110
		$paths = $aimeos->getConfigPaths();
111
		$paths[] = __DIR__ . DIRECTORY_SEPARATOR . 'config';
112
113
		$conf = new \Aimeos\MW\Config\PHPArray( array(), $paths );
114
		$ctx->setConfig( $conf );
115
116
117
		$dbm = new \Aimeos\MW\DB\Manager\DBAL( $conf );
118
		$ctx->setDatabaseManager( $dbm );
119
120
121
		$logger = new \Aimeos\MW\Logger\File( $site . '.log', \Aimeos\MW\Logger\Base::DEBUG );
122
		$ctx->setLogger( $logger );
123
124
125
		$cache = new \Aimeos\MW\Cache\None();
126
		$ctx->setCache( $cache );
127
128
129
		$i18n = new \Aimeos\MW\Translation\None( 'en' );
130
		$ctx->setI18n( array( 'en' => $i18n ) );
131
132
133
		$session = new \Aimeos\MW\Session\None();
134
		$ctx->setSession( $session );
135
136
137
		$localeManager = \Aimeos\MShop\Locale\Manager\Factory::create( $ctx );
138
		$locale = $localeManager->bootstrap( $site, '', '', false );
0 ignored issues
show
Bug introduced by
The method bootstrap() does not exist on Aimeos\MShop\Common\Manager\Iface. It seems like you code against a sub-type of said class. However, the method does not exist in Aimeos\MShop\Common\Manager\Decorator\Iface or Aimeos\MShop\Service\Manager\Lists\Type\Iface or Aimeos\MShop\Price\Manager\Iface or Aimeos\MShop\Attribute\Manager\Type\Iface or Aimeos\MShop\Review\Manager\Iface or Aimeos\MShop\Price\Manager\Lists\Type\Iface or Aimeos\MShop\Media\Manager\Type\Iface or Aimeos\MShop\Coupon\Manager\Code\Iface or Aimeos\MShop\Order\Manager\Base\Coupon\Iface or Aimeos\MShop\Product\Manager\Iface or Aimeos\MShop\Supplier\Manager\Iface or Aimeos\MShop\Price\Manager\Property\Type\Iface or Aimeos\MShop\Common\Manager\Property\Iface or Aimeos\MShop\Customer\Manager\Property\Iface or Aimeos\MShop\Order\Manager\Base\Service\Iface or Aimeos\MShop\Order\Manager\Base\Iface or Aimeos\MShop\Price\Manager\Lists\Iface or Aimeos\MShop\Cms\Manager\Lists\Type\Iface or Aimeos\MShop\Supplier\Manager\Lists\Type\Iface or Aimeos\MShop\Order\Manag...Service\Attribute\Iface or Aimeos\MShop\Service\Manager\Lists\Iface or Aimeos\MShop\Tag\Manager\Type\Iface or Aimeos\MShop\Text\Manager\Lists\Iface or Aimeos\MShop\Price\Manager\Type\Iface or Aimeos\MShop\Locale\Manager\Currency\Iface or Aimeos\MShop\Order\Manag...Product\Attribute\Iface or Aimeos\MShop\Media\Manager\Lists\Type\Iface or Aimeos\MShop\Catalog\Manager\Lists\Iface or Aimeos\MShop\Tag\Manager\Iface or Aimeos\MShop\Coupon\Manager\Iface or Aimeos\MShop\Attribute\Manager\Iface or Aimeos\MShop\Common\Manager\Lists\Iface or Aimeos\MShop\Attribute\Manager\Property\Type\Iface or Aimeos\MShop\Service\Manager\Type\Iface or Aimeos\MShop\Product\Manager\Lists\Iface or Aimeos\MShop\Customer\Manager\Property\Type\Iface or Aimeos\MShop\Order\Manager\Iface or Aimeos\MShop\Customer\Manager\Iface or Aimeos\MShop\Media\Manager\Iface or Aimeos\MShop\Rule\Manager\Type\Iface or Aimeos\MShop\Customer\Manager\Lists\Type\Iface or Aimeos\MShop\Attribute\Manager\Lists\Iface or Aimeos\MShop\Product\Manager\Property\Type\Iface or Aimeos\MShop\Media\Manager\Lists\Iface or Aimeos\MShop\Plugin\Manager\Iface or Aimeos\MShop\Order\Manager\Base\Address\Iface or Aimeos\MShop\Catalog\Manager\Iface or Aimeos\MShop\Locale\Manager\Site\Iface or Aimeos\MShop\Product\Manager\Type\Iface or Aimeos\MShop\Supplier\Manager\Lists\Iface or Aimeos\MShop\Stock\Manager\Type\Iface or Aimeos\MShop\Text\Manager\Iface or Aimeos\MShop\Common\Manager\Type\Iface or Aimeos\MAdmin\Job\Manager\Iface or Aimeos\MShop\Customer\Manager\Group\Iface or Aimeos\MShop\Product\Manager\Lists\Type\Iface or Aimeos\MShop\Text\Manager\Lists\Type\Iface or Aimeos\MShop\Text\Manager\Type\Iface or Aimeos\MShop\Cms\Manager\Iface or Aimeos\MShop\Order\Manager\Status\Iface or Aimeos\MShop\Rule\Manager\Iface or Aimeos\MShop\Common\Manager\Address\Iface or Aimeos\MShop\Plugin\Manager\Type\Iface or Aimeos\MShop\Stock\Manager\Iface or Aimeos\MShop\Attribute\Manager\Property\Iface or Aimeos\MShop\Subscription\Manager\Iface or Aimeos\MShop\Media\Manager\Property\Type\Iface or Aimeos\MShop\Product\Manager\Property\Iface or Aimeos\MShop\Locale\Manager\Language\Iface or Aimeos\MShop\Media\Manager\Property\Iface or Aimeos\MShop\Service\Manager\Iface or Aimeos\MShop\Attribute\Manager\Lists\Type\Iface or Aimeos\MAdmin\Log\Manager\Iface or Aimeos\MShop\Cms\Manager\Lists\Iface or Aimeos\MAdmin\Cache\Manager\Iface or Aimeos\MShop\Order\Manager\Base\Product\Iface or Aimeos\MShop\Price\Manager\Property\Iface or Aimeos\MShop\Customer\Manager\Lists\Iface or Aimeos\MShop\Catalog\Manager\Lists\Type\Iface or Aimeos\MShop\Index\Manager\Iface or Aimeos\MShop\Index\Manager\Attribute\Iface or Aimeos\MShop\Index\Manager\Text\Iface or Aimeos\MShop\Index\Manager\Supplier\Iface or Aimeos\MShop\Index\Manager\Catalog\Iface or Aimeos\MShop\Index\Manager\Price\Iface or Aimeos\MShop\Supplier\Manager\Address\Iface or Aimeos\MShop\Customer\Manager\Address\Iface. Are you sure you never get one of those? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

138
		/** @scrutinizer ignore-call */ 
139
  $locale = $localeManager->bootstrap( $site, '', '', false );
Loading history...
139
		$ctx->setLocale( $locale );
140
141
142
		$ctx->setEditor( 'ai-cms-grapesjs:admin/jqadm' );
143
144
		return $ctx;
145
	}
146
}