Skip to content
This repository was archived by the owner on Apr 20, 2021. It is now read-only.

Commit 9b342b2

Browse files
committed
Merge branch 'behatch-json-utf8'
2 parents 516a73b + 8617cf9 commit 9b342b2

File tree

7 files changed

+30
-29
lines changed

7 files changed

+30
-29
lines changed

src/Json/Json.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,13 @@ public function read($expression, PropertyAccessor $accessor)
3636

3737
public function encode($pretty = true)
3838
{
39+
$flags = JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE;
40+
3941
if (true === $pretty && defined('JSON_PRETTY_PRINT')) {
40-
// Cannot test this part JSON_PRETTY_PRINT is only 5.4
41-
return json_encode($this->content, JSON_PRETTY_PRINT);
42+
$flags |= JSON_PRETTY_PRINT;
4243
}
4344

44-
return json_encode($this->content);
45+
return json_encode($this->content, $flags);
4546
}
4647

4748
public function __toString()

tests/features/fr/json.feature

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Fonctionnalité:
2323
Et le nœud JSON "foo" devrait contenir "bar"
2424
Et le nœud JSON "foo" ne devrait pas contenir "something else"
2525

26-
Et le nœud JSON "numbers[0]" devrait contenir "one"
26+
Et le nœud JSON "numbers[0]" devrait contenir "öne"
2727
Et le nœud JSON "numbers[1]" devrait contenir "two"
2828
Et le nœud JSON "numbers[2]" devrait contenir "three"
2929
Et le nœud JSON "numbers[3].complexeshizzle" devrait être égal à "true"
@@ -32,13 +32,13 @@ Fonctionnalité:
3232

3333
Et les nœuds JSON devraient être égaux à:
3434
| foo | bar |
35-
| numbers[0] | one |
35+
| numbers[0] | öne |
3636
| numbers[1] | two |
3737
| numbers[2] | three |
3838

3939
Et les nœuds JSON devraient contenir:
4040
| foo | bar |
41-
| numbers[0] | one |
41+
| numbers[0] | öne |
4242
| numbers[1] | two |
4343
| numbers[2] | three |
4444

@@ -71,7 +71,7 @@ Fonctionnalité:
7171
"numbers": {
7272
"type": "array",
7373
"required":true,
74-
"one": {
74+
"öne": {
7575
"type": "string",
7676
"required":true
7777
},
@@ -95,7 +95,7 @@ Fonctionnalité:
9595
{
9696
"foo": "bar",
9797
"numbers": [
98-
"one",
98+
"öne",
9999
"two",
100100
"three",
101101
{

tests/features/ja/json.feature

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
かつ JSONのノード"foo""bar"を含むこと
2525
かつ JSONのノード"foo""something else"を含まないこと
2626

27-
かつ JSONのノード"numbers[0]""one"を含むこと
27+
かつ JSONのノード"numbers[0]""öne"を含むこと
2828
かつ JSONのノード"numbers[1]""two"を含むこと
2929
かつ JSONのノード"numbers[2]""three"を含むこと
3030
かつ JSONのノード"numbers[3].complexeshizzle""true"と等しいこと
@@ -60,7 +60,7 @@
6060
"numbers": {
6161
"type": "array",
6262
"required":true,
63-
"one": {
63+
"öne": {
6464
"type": "string",
6565
"required":true
6666
},
@@ -85,7 +85,7 @@
8585
{
8686
"foo": "bar",
8787
"numbers": [
88-
"one",
88+
"öne",
8989
"two",
9090
"three",
9191
{

tests/features/json.feature

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,25 +22,25 @@ Feature: Testing JSONContext
2222
And the JSON node "foo" should contain "bar"
2323
And the JSON node "foo" should not contain "something else"
2424

25-
And the JSON node "numbers[0]" should contain "one"
25+
And the JSON node "numbers[0]" should contain "öne"
2626
And the JSON node "numbers[1]" should contain "two"
2727
And the JSON node "numbers[2]" should contain "three"
2828
And the JSON node "numbers[3].complexeshizzle" should be equal to "true"
2929
And the JSON node "numbers[3].so[0]" should be equal to "very"
3030
And the JSON node "numbers[3].so[1].complicated" should be equal to "indeed"
31-
And the JSON node "numbers[0]" should match "/o.{1}e/"
31+
And the JSON node "numbers[0]" should match "/ö.{1}e/"
3232
And the JSON node "numbers[1]" should match "/.{2}o/"
3333
And the JSON node "numbers[2]" should match "/[a-z]{3}e.+/"
3434

3535
And the JSON nodes should be equal to:
3636
| foo | bar |
37-
| numbers[0] | one |
37+
| numbers[0] | öne |
3838
| numbers[1] | two |
3939
| numbers[2] | three |
4040

4141
And the JSON nodes should contain:
4242
| foo | bar |
43-
| numbers[0] | one |
43+
| numbers[0] | öne |
4444
| numbers[1] | two |
4545
| numbers[2] | three |
4646

@@ -138,7 +138,7 @@ Feature: Testing JSONContext
138138
{
139139
"foo": "bar",
140140
"numbers": [
141-
"one",
141+
"öne",
142142
"two",
143143
"three",
144144
{

tests/features/pt/json.feature

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Funcionalidade: Testando o JSONContext
2323
E o nó JSON "foo" deve conter "bar"
2424
E o nó JSON "foo" não deve conter "something else"
2525

26-
E o nó JSON "numbers[0]" deve conter "one"
26+
E o nó JSON "numbers[0]" deve conter "öne"
2727
E o nó JSON "numbers[1]" deve conter "two"
2828
E o nó JSON "numbers[2]" deve conter "three"
2929
E o nó JSON "numbers[3].complexeshizzle" deve ser igual a "true"
@@ -32,13 +32,13 @@ Funcionalidade: Testando o JSONContext
3232

3333
E os nós JSON devem ser iguais a:
3434
| foo | bar |
35-
| numbers[0] | one |
35+
| numbers[0] | öne |
3636
| numbers[1] | two |
3737
| numbers[2] | three |
3838

3939
E os nós JSON devem conter:
4040
| foo | bar |
41-
| numbers[0] | one |
41+
| numbers[0] | öne |
4242
| numbers[1] | two |
4343
| numbers[2] | three |
4444

@@ -75,7 +75,7 @@ Funcionalidade: Testando o JSONContext
7575
"numbers": {
7676
"type": "array",
7777
"required":true,
78-
"one": {
78+
"öne": {
7979
"type": "string",
8080
"required":true
8181
},
@@ -99,7 +99,7 @@ Funcionalidade: Testando o JSONContext
9999
{
100100
"foo": "bar",
101101
"numbers": [
102-
"one",
102+
"öne",
103103
"two",
104104
"three",
105105
{

tests/features/ru/json.feature

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,25 +23,25 @@
2323
И узел JSON "foo" должен содержать "bar"
2424
И узел JSON "foo" не должен содержать "something else"
2525

26-
И узел JSON "numbers[0]" должен содержать "one"
26+
И узел JSON "numbers[0]" должен содержать "öne"
2727
И узел JSON "numbers[1]" должен содержать "two"
2828
И узел JSON "numbers[2]" должен содержать "three"
2929
И узел JSON "numbers[3].complexeshizzle" должен быть равен "true"
3030
И узел JSON "numbers[3].so[0]" должен быть равен "very"
3131
И узел JSON "numbers[3].so[1].complicated" должен быть равен "indeed"
32-
И узел JSON "numbers[0]" должен соответствовать "/o.{1}e/"
32+
И узел JSON "numbers[0]" должен соответствовать "/ö.{1}e/"
3333
И узел JSON "numbers[1]" должен соответствовать "/.{2}o/"
3434
И узел JSON "numbers[2]" должен соответствовать "/[a-z]{3}e.+/"
3535

3636
И узлы JSON должны быть равны:
3737
| foo | bar |
38-
| numbers[0] | one |
38+
| numbers[0] | öne |
3939
| numbers[1] | two |
4040
| numbers[2] | three |
4141

4242
И узлы JSON должны содержать:
4343
| foo | bar |
44-
| numbers[0] | one |
44+
| numbers[0] | öne |
4545
| numbers[1] | two |
4646
| numbers[2] | three |
4747

@@ -78,7 +78,7 @@
7878
"numbers": {
7979
"type": "array",
8080
"required":true,
81-
"one": {
81+
"öne": {
8282
"type": "string",
8383
"required":true
8484
},
@@ -139,7 +139,7 @@
139139
{
140140
"foo": "bar",
141141
"numbers": [
142-
"one",
142+
"öne",
143143
"two",
144144
"three",
145145
{

tests/fixtures/www/json/imajson.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
{
22
"foo": "bar",
33
"numbers": [
4-
"one",
4+
"öne",
55
"two",
66
"three",
77
{
88
"complexeshizzle": true,
99
"so": ["very", {"complicated": "indeed"}]
1010
}
1111
]
12-
}
12+
}

0 commit comments

Comments
 (0)