Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
typo3
qfq
Commits
98425987
Commit
98425987
authored
Jan 17, 2016
by
Carsten Rose
Browse files
Evaluate.php: parseArray() enhanced to parse also nested arrays.
parent
946691b6
Changes
2
Hide whitespace changes
Inline
Side-by-side
qfq/Evaluate.php
View file @
98425987
...
...
@@ -35,7 +35,7 @@ class Evaluate {
}
/**
* Evaluate a whole array.
* Evaluate a whole array
or a array of arrays
.
*
* @param $tokenArray
* @return mixed
...
...
@@ -44,7 +44,11 @@ class Evaluate {
$arr
=
array
();
foreach
(
$tokenArray
as
$key
=>
$value
)
{
$arr
[
$key
]
=
$this
->
parse
(
$value
);
if
(
is_array
(
$value
))
{
$arr
[]
=
$this
->
parseArray
(
$value
);
}
else
{
$arr
[
$key
]
=
$this
->
parse
(
$value
);
}
}
return
$arr
;
...
...
tests/phpunit/EvaluateTest.php
View file @
98425987
...
...
@@ -82,9 +82,11 @@ class EvaluateTest extends AbstractDatabaseTest {
$this
->
assertEquals
(
'1'
,
$eval
->
parse
(
'{{SELECT count(id) FROM Person WHERE name="Zappa" AND firstname="Frank"}}'
));
// SHOW tables
$expected
=
"idbigint(20)NOPRIauto_incrementnamevarchar(128)YESfirstnamevarchar(128)YESgenderenum('','male','female')NOgroupsset('','a','b','c')NO"
;
$expected
=
"idbigint(20)NOPRIauto_incrementnamevarchar(128)YESfirstnamevarchar(128)YESgenderenum('','male','female')NOmalegroupsset('','a','b','c')NO"
;
$this
->
assertEquals
(
$expected
,
$eval
->
parse
(
'{{SHOW COLUMNS FROM Person}}'
));
}
public
function
testDbVars
()
{
...
...
@@ -102,7 +104,7 @@ class EvaluateTest extends AbstractDatabaseTest {
$data
=
[
'formName'
=>
'MyTestForm'
,
'title'
=>
'Person: {{SELECT firstname, " ", name FROM
p
erson LIMIT 1}} / Employee'
'title'
=>
'Person: {{SELECT firstname, " ", name FROM
P
erson LIMIT 1}} / Employee'
];
$expected
=
[
'formName'
=>
'MyTestForm'
,
...
...
@@ -110,6 +112,34 @@ class EvaluateTest extends AbstractDatabaseTest {
];
$this
->
assertEquals
(
$expected
,
$eval
->
parseArray
(
$data
));
}
public
function
testParseArrayOfArray
()
{
$eval
=
new
\
qfq\Evaluate
(
$this
->
store
,
$this
->
db
);
$data
=
[
[
'formName'
=>
'MyTestForm'
,
'title'
=>
'Person: {{SELECT firstname, " ", name FROM Person LIMIT 1}} / Employee'
],
[
'order'
=>
'100'
,
'class'
=>
'Person: {{SELECT firstname, " ", name FROM Person LIMIT 1}} / Employee'
]
];
$expected
=
[
[
'formName'
=>
'MyTestForm'
,
'title'
=>
'Person: John Doe / Employee'
],
[
'order'
=>
'100'
,
'class'
=>
'Person: John Doe / Employee'
]
];
$this
->
assertEquals
(
$expected
,
$eval
->
parseArray
(
$data
));
}
protected
function
setUp
()
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment