1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-02-23 11:28:33 +01:00
php-phpbb/tests/help/manager_test.php

185 lines
4.4 KiB
PHP
Raw Normal View History

<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
2015-05-20 00:23:42 +02:00
class phpbb_help_manager_test extends phpbb_test_case
{
/** @var \phpbb\help\manager */
protected $manager;
/** @var \phpbb\template\template */
protected $template;
/** @var \phpbb\language\language */
protected $language;
public function setUp()
{
$this->template = $this->getMockBuilder('\phpbb\template\template')
->disableOriginalConstructor()
->getMock();
$this->language = $this->getMockBuilder('\phpbb\language\language')
->disableOriginalConstructor()
->getMock();
$this->manager = new \phpbb\help\manager(
2015-05-20 00:23:42 +02:00
new \phpbb_mock_event_dispatcher(),
$this->language,
$this->template
);
}
public function add_block_data()
{
return array(
array('abc', false, array(), false),
array('def', true, array(), true),
array(
'abc',
false,
array(
'question1' => 'answer1',
'question2' => 'answer2',
'question3' => 'answer3',
),
false
),
);
}
/**
* @dataProvider add_block_data
*
* @param string $block_name
* @param bool $switch
* @param array $questions
* @param bool $switch_expected
*/
public function test_add_block($block_name, $switch, $questions, $switch_expected)
{
$this->language->expects($this->at(0))
->method('lang')
->with($block_name)
->willReturn(strtoupper($block_name));
$lang_call_count = 1;
foreach ($questions as $question => $answer)
{
$this->language->expects($this->at($lang_call_count))
->method('lang')
->with($question)
->willReturn(strtoupper($question));
$lang_call_count++;
$this->language->expects($this->at($lang_call_count))
->method('lang')
->with($answer)
->willReturn(strtoupper($answer));
$lang_call_count++;
}
$this->template->expects($this->at(0))
->method('assign_block_vars')
->with('faq_block', array(
'BLOCK_TITLE' => strtoupper($block_name),
'SWITCH_COLUMN' => $switch_expected,
));
$template_call_count = 1;
foreach ($questions as $question => $answer)
{
$this->template->expects($this->at($template_call_count))
->method('assign_block_vars')
->with('faq_block.faq_row', array(
'FAQ_QUESTION' => strtoupper($question),
'FAQ_ANSWER' => strtoupper($answer),
));
$template_call_count++;
}
$this->manager->add_block($block_name, $switch, $questions);
$this->assertEquals($switch_expected, $this->manager->switched_column());
}
public function add_question_data()
{
return array(
array('abc', false, false),
array('def', true, true),
);
}
/**
* @dataProvider add_question_data
*
* @param string $question
* @param string $answer
*/
public function test_add_question($question, $answer)
{
$this->language->expects($this->at(0))
->method('lang')
->with($question)
->willReturn(strtoupper($question));
$this->language->expects($this->at(1))
->method('lang')
->with($answer)
->willReturn(strtoupper($answer));
$this->template->expects($this->once())
->method('assign_block_vars')
->with('faq_block.faq_row', array(
'FAQ_QUESTION' => strtoupper($question),
'FAQ_ANSWER' => strtoupper($answer),
));
$this->manager->add_question($question, $answer);
}
public function test_add_block_double_switch()
{
$block_name = 'abc';
$switch_expected = true;
$this->language->expects($this->at(0))
->method('lang')
->with($block_name)
->willReturn(strtoupper($block_name));
$this->template->expects($this->at(0))
->method('assign_block_vars')
->with('faq_block', array(
'BLOCK_TITLE' => strtoupper($block_name),
'SWITCH_COLUMN' => $switch_expected,
));
$this->manager->add_block($block_name, true);
$this->assertTrue($this->manager->switched_column());
// Add a second block with switch
$block_name = 'def';
$switch_expected = false;
$this->language->expects($this->at(0))
->method('lang')
->with($block_name)
->willReturn(strtoupper($block_name));
$this->template->expects($this->at(0))
->method('assign_block_vars')
->with('faq_block', array(
'BLOCK_TITLE' => strtoupper($block_name),
'SWITCH_COLUMN' => $switch_expected,
));
$this->manager->add_block($block_name, true);
$this->assertTrue($this->manager->switched_column());
}
}