/** * {@inheritDoc} */ public function createConfig(array $config = array()) { $config = ArrayObject::ensureArrayObject($config); $config->defaults($this->defaultConfig); $config->defaults(array( 'payum.template.layout' => '@PayumCore/layout.html.twig', 'buzz.client' => ClientFactory::createCurl(), 'twig.env' => TwigFactory::createGeneric(), 'payum.action.get_http_request' => new GetHttpRequestAction(), 'payum.action.capture_order' => new CaptureOrderAction(), 'payum.action.execute_same_request_with_model_details' => new ExecuteSameRequestWithModelDetailsAction(), 'payum.action.render_template' => function (ArrayObject $config) { return new RenderTemplateAction($config['twig.env'], $config['payum.template.layout']); }, 'payum.extension.endless_cycle_detector' => new EndlessCycleDetectorExtension(), 'payum.prepend_actions' => array(), 'payum.prepend_extensions' => array(), 'payum.prepend_apis' => array(), 'payum.default_options' => array(), 'payum.required_options' => array(), )); return (array) $config; }
/** * @test */ public function shouldRenderObtainCheckoutTokenTemplate() { $twig = TwigFactory::createGeneric(); $result = $twig->render('@PayumStripe/Action/obtain_checkout_token.html.twig', array('publishable_key' => 'theKey')); $this->assertContains('data-key="theKey"', $result); $this->assertContains('https://checkout.stripe.com/checkout.js', $result); }
/** * @param \Klarna_Checkout_ConnectorInterface $connector * * @return \Payum\Core\Payment */ public static function create(\Klarna_Checkout_ConnectorInterface $connector, ActionInterface $renderTemplateAction = null, $layoutTemplate = null, $captureTemplate = null) { $layoutTemplate = $layoutTemplate ?: '@PayumCore/layout.html.twig'; $captureTemplate = $captureTemplate ?: '@PayumKlarnaCheckout/Action/capture.html.twig'; $renderTemplateAction = $renderTemplateAction ?: new RenderTemplateAction(TwigFactory::createGeneric(), $layoutTemplate); $payment = new Payment(); $payment->addApi($connector); $payment->addAction(new CaptureAction($captureTemplate)); $payment->addAction(new NotifyAction()); $payment->addAction(new StatusAction()); $payment->addAction(new CreateOrderAction()); $payment->addAction(new UpdateOrderAction()); $payment->addAction($renderTemplateAction); return $payment; }
/** * @param Keys $keys * * @return PaymentInterface */ public static function createCheckout(Keys $keys, ActionInterface $renderTemplateAction = null, $layoutTemplate = null, $obtainTokenTemplate = null) { $layoutTemplate = $layoutTemplate ?: '@PayumCore/layout.html.twig'; $obtainTokenTemplate = $obtainTokenTemplate ?: '@PayumStripe/Action/obtain_checkout_token.html.twig'; $renderTemplateAction = $renderTemplateAction ?: new RenderTemplateAction(TwigFactory::createGeneric(), $layoutTemplate); $payment = new Payment(); $payment->addApi($keys); $payment->addExtension(new EndlessCycleDetectorExtension()); $payment->addAction(new CaptureAction()); $payment->addAction(new StatusAction()); $payment->addAction(new ExecuteSameRequestWithModelDetailsAction()); $payment->addAction($renderTemplateAction); $payment->addAction(new ObtainTokenAction($obtainTokenTemplate)); $payment->addAction(new CreateChargeAction()); return $payment; }
/** * @test */ public function shouldRenderExpectedResult() { $twig = TwigFactory::createGeneric(); $actualResult = $twig->render('@PayumKlarnaCheckout/Action/capture.html.twig', array('snippet' => 'theSnippet')); $expectedResult = <<<HTML <!DOCTYPE html> <html> <head> </head> <body> theSnippet </body> </html> HTML; $this->assertEquals($expectedResult, $actualResult); }
/** * @test */ public function shouldRenderCheckoutTokenWithDollarsIfNoCurrencySet() { $twig = TwigFactory::createGeneric(); $result = $twig->render('@PayumStripe/Action/obtain_checkout_token.html.twig', array('model' => array('currency' => ''))); $this->assertContains('data-currency="USD"', $result); }