aboutsummaryrefslogtreecommitdiffstats
path: root/tests/bbcode/parser_test.php
blob: 697bcde6102c90b9f2334de60e156260d01a2b02 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<?php
/**
*
* @package testing
* @version $Id$
* @copyright (c) 2008 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/

// require_once dirname(__FILE__) . '/../../phpBB/includes/bbcode/bbcode_parser_base.php';
// require_once dirname(__FILE__) . '/../../phpBB/includes/bbcode/bbcode_parser.php';

class phpbb_bbcode_parser_test extends PHPUnit_Framework_TestCase
{
	public function string_bbcode_data()
	{
		return array(
			// Default BBCodes from in their simplest way
			array(
				'Test default bbcodes: simple bold',
				'[b]bold[/b]',
				'[b:]bold[/b:]',
			),
			array(
				'Test default bbcodes: simple underlined',
				'[u]underlined[/u]',
				'[u:]underlined[/u:]',
			),
			array(
				'Test default bbcodes: simple italic',
				'[i]italic[/i]',
				'[i:]italic[/i:]',
			),
			array(
				'Test default bbcodes: simple color rgb',
				'[color=#FF0000]colored[/color]',
				'[color=#FF0000:]colored[/color:]',
			),
			array(
				'Test default bbcodes: simple color name',
				'[color=red]colored[/color]',
				'[color=red:]colored[/color:]',
			),
			array(
				'Test default bbcodes: simple quote',
				'[quote]quoted[/quote]',
				'[quote:]quoted[/quote:]',
			),
			array(
				'Test default bbcodes: simple quote with username',
				'[quote="username"]quoted[/quote]',
				'[quote="username":]quoted[/quote:]',
			),
			array(
				'Test default bbcodes: simple code',
				'[code]unparsed code[/code]',
				'[code:]unparsed code[/code:]',
			),
			array(
				'Test default bbcodes: simple php code',
				'[code=php]unparsed code[/code]',
				'[code=php:]unparsed code[/code:]',
			),
			array(
				'Test default bbcodes: simple list',
				'[list]no item[/list]',
				'[list:]no item[/list:]',
			),
			array(
				'Test default bbcodes: simple list-item only',
				'[*]unparsed',
				'[*]unparsed',
			),
			array(
				'Test default bbcodes: simple list-item',
				'[list][*]item[/list]',
				'[list:][*:]item[/list:]',
			),
			array(
				'Test default bbcodes: simple list-item closed',
				'[list][*]item[/*][/list]',
				'[list:][*:]item[/*:][/list:]',
			),
			array(
				'Test default bbcodes: simple list-item numbered',
				'[list=1][*]item[/list]',
				'[list=1:][*:]item[/list:]',
			),
			array(
				'Test default bbcodes: simple list-item alpha',
				'[list=a][*]item[/list]',
				'[list=a:][*:]item[/list:]',
			),
			array(
				'Test default bbcodes: simple list-item roman',
				'[list=i][*]item[/list]',
				'[list=i:][*:]item[/list:]',
			),
			array(
				'Test default bbcodes: simple list-item disc',
				'[list=disc][*]item[/list]',
				'[list=disc:][*:]item[/list:]',
			),
			array(
				'Test default bbcodes: simple list-item circle',
				'[list=circle][*]item[/list]',
				'[list=circle:][*:]item[/list:]',
			),
			array(
				'Test default bbcodes: simple list-item square',
				'[list=square][*]item[/list]',
				'[list=square:][*:]item[/list:]',
			),
			array(
				'Test default bbcodes: simple img',
				'[img]https://area51.phpbb.com/images/area51.png[/img]',
				'[img:]https://area51.phpbb.com/images/area51.png[/img:]',
			),
			array(
				'Test default bbcodes: simple url',
				'[url]https://area51.phpbb.com/[/url]',
				'[url:]https://area51.phpbb.com/[/url:]',
			),
			array(
				'Test default bbcodes: simple url with description',
				'[url=https://area51.phpbb.com/]Area51[/url]',
				'[url=https://area51.phpbb.com/:]Area51[/url:]',
			),
			array(
				'Test default bbcodes: simple email',
				'[email]bbcode-test@phpbb.com[/email]',
				'[email:]bbcode-test@phpbb.com[/email:]',
			),
			array(
				'Test default bbcodes: simple email with description',
				'[email=bbcode-test@phpbb.com]Email[/email]',
				'[email=bbcode-test@phpbb.com:]Email[/email:]',
			),
		);
	}


	/**
	* @dataProvider string_bbcode_data
	*/
	public function test_firstpass($description, $message, $expected)
	{
		$this->markTestIncomplete('New bbcode parser has not been backported from feature/ascraeus-experiment yet.');

		global $user, $request;
		$user = new phpbb_mock_user;
		$request = new phpbb_mock_request;

		$bbcode = new bbcode_firstpass();
		$bbcode->message = $message;
		$bbcode->bbcode_init(false);
		$bbcode->parse_bbcode();
		$this->assertEquals($expected, $bbcode->message);
	}
}