2
2
const MachineNameTestArray = [
3
3
{
4
4
machineName : 'Bob' ,
5
- replacePattern : 'a-zA-Z0-9-_.~' ,
5
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
6
6
replaceChar : '_' ,
7
7
maxlength : 64 ,
8
8
expectedMachineName : 'bob' ,
9
9
} ,
10
10
{
11
11
machineName : 'Äwesome' ,
12
- replacePattern : 'a-zA-Z0-9-_.~' ,
12
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
13
13
replaceChar : '_' ,
14
14
maxlength : 64 ,
15
15
expectedMachineName : 'awesome' ,
16
16
} ,
17
17
{
18
18
machineName : 'B?!"@\\/-ob@e' ,
19
- replacePattern : 'a-zA-Z0-9_.~' ,
19
+ replacePattern : '[^ a-zA-Z0-9_.~]+ ' ,
20
20
replaceChar : '_' ,
21
21
maxlength : 64 ,
22
22
expectedMachineName : 'b_ob_e' ,
23
23
} ,
24
24
{
25
25
machineName : 'Bob@e\\0' ,
26
- replacePattern : 'a-zA-Z0-9_.~@' ,
26
+ replacePattern : '[^ a-zA-Z0-9_.~@]+ ' ,
27
27
replaceChar : '_' ,
28
28
maxlength : 64 ,
29
29
expectedMachineName : 'bob@e_0' ,
30
30
} ,
31
31
{
32
32
machineName : 'Bobby' ,
33
- replacePattern : 'a-zA-Z0-9-_.~' ,
33
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
34
34
replaceChar : '_' ,
35
35
maxlength : 64 ,
36
36
expectedMachineName : 'bobby' ,
37
37
} ,
38
38
{
39
39
machineName : 'ǍǎǏ' ,
40
- replacePattern : 'a-zA-Z0-9-_.~' ,
40
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
41
41
replaceChar : '_' ,
42
42
maxlength : 64 ,
43
43
expectedMachineName : 'aai' ,
@@ -46,166 +46,180 @@ const MachineNameTestArray = [
46
46
// the removeDiacritics() function present in PhpTranliteration.php.
47
47
{
48
48
machineName : 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ' ,
49
- replacePattern : 'a-zA-Z0-9-_.~' ,
49
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
50
50
replaceChar : '_' ,
51
51
maxlength : 64 ,
52
52
expectedMachineName : 'aaaaaaaeceeeeiiii' ,
53
53
} ,
54
54
{
55
55
machineName : 'ÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß' ,
56
- replacePattern : 'a-zA-Z0-9-_.~' ,
56
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
57
57
replaceChar : '_' ,
58
58
maxlength : 64 ,
59
59
expectedMachineName : 'dnoooooxouuuuuthss' ,
60
60
} ,
61
61
{
62
62
machineName : 'àáâãäåæçèéêëìíîï' ,
63
- replacePattern : 'a-zA-Z0-9-_.~' ,
63
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
64
64
replaceChar : '_' ,
65
65
maxlength : 64 ,
66
66
expectedMachineName : 'aaaaaaaeceeeeiiii' ,
67
67
} ,
68
68
{
69
69
machineName : 'ðñòóôõö÷øùúûüýþÿ' ,
70
- replacePattern : 'a-zA-Z0-9-_.~' ,
70
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
71
71
replaceChar : '_' ,
72
72
maxlength : 64 ,
73
73
expectedMachineName : 'dnooooo_ouuuuythy' ,
74
74
} ,
75
75
{
76
76
machineName : 'ĀāĂ㥹ĆćĈĉĊċČčĎď' ,
77
- replacePattern : 'a-zA-Z0-9-_.~' ,
77
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
78
78
replaceChar : '_' ,
79
79
maxlength : 64 ,
80
80
expectedMachineName : 'aaaaaaccccccccdd' ,
81
81
} ,
82
82
{
83
83
machineName : 'ĐđĒēĔĕĖėĘęĚěĜĝĞğ' ,
84
- replacePattern : 'a-zA-Z0-9-_.~' ,
84
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
85
85
replaceChar : '_' ,
86
86
maxlength : 64 ,
87
87
expectedMachineName : 'ddeeeeeeeeeegggg' ,
88
88
} ,
89
89
{
90
90
machineName : 'ĠġĢģĤĥĦħĨĩĪīĬĭĮį' ,
91
- replacePattern : 'a-zA-Z0-9-_.~' ,
91
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
92
92
replaceChar : '_' ,
93
93
maxlength : 64 ,
94
94
expectedMachineName : 'gggghhhhiiiiiiii' ,
95
95
} ,
96
96
{
97
97
machineName : 'İıIJijĴĵĶķĸĹĺĻļĽľĿ' ,
98
- replacePattern : 'a-zA-Z0-9-_.~' ,
98
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
99
99
replaceChar : '_' ,
100
100
maxlength : 64 ,
101
101
expectedMachineName : 'iiijijjjkkklllllll' ,
102
102
} ,
103
103
{
104
104
machineName : 'ŀŁłŃńŅņŇňʼnŊŋŌōŎŏ' ,
105
- replacePattern : 'a-zA-Z0-9-_.~' ,
105
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
106
106
replaceChar : '_' ,
107
107
maxlength : 64 ,
108
108
expectedMachineName : 'lllnnnnnn_nngngoooo' ,
109
109
} ,
110
110
{
111
111
machineName : 'ŐőŒœŔŕŖŗŘřŚśŜŝŞş' ,
112
- replacePattern : 'a-zA-Z0-9-_.~' ,
112
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
113
113
replaceChar : '_' ,
114
114
maxlength : 64 ,
115
115
expectedMachineName : 'oooeoerrrrrrssssss' ,
116
116
} ,
117
117
{
118
118
machineName : 'ŠšŢţŤťŦŧŨũŪūŬŭŮů' ,
119
- replacePattern : 'a-zA-Z0-9-_.~' ,
119
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
120
120
replaceChar : '_' ,
121
121
maxlength : 64 ,
122
122
expectedMachineName : 'ssttttttuuuuuuuu' ,
123
123
} ,
124
124
{
125
125
machineName : 'ŰűŲųŴŵŶŷŸŹźŻżŽž' ,
126
- replacePattern : 'a-zA-Z0-9-_.~' ,
126
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
127
127
replaceChar : '_' ,
128
128
maxlength : 64 ,
129
129
expectedMachineName : 'uuuuwwyyyzzzzzz' ,
130
130
} ,
131
131
{
132
132
machineName : 'ǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟ' ,
133
- replacePattern : 'a-zA-Z0-9-_.~' ,
133
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
134
134
replaceChar : '_' ,
135
135
maxlength : 64 ,
136
136
expectedMachineName : 'ioouuuuuuuuuu_aa' ,
137
137
} ,
138
138
{
139
139
machineName : 'ǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯ' ,
140
- replacePattern : 'a-zA-Z0-9-_.~' ,
140
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
141
141
replaceChar : '_' ,
142
142
maxlength : 64 ,
143
143
expectedMachineName : 'aaaeaeggggkkoooozhzh' ,
144
144
} ,
145
145
{
146
146
machineName : 'ǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿ' ,
147
- replacePattern : 'a-zA-Z0-9-_.~' ,
147
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
148
148
replaceChar : '_' ,
149
149
maxlength : 64 ,
150
150
expectedMachineName : 'jdzddzgghvwnnaaaeaeoo' ,
151
151
} ,
152
152
{
153
153
machineName : 'ȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏ' ,
154
- replacePattern : 'a-zA-Z0-9-_.~' ,
154
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
155
155
replaceChar : '_' ,
156
156
maxlength : 64 ,
157
157
expectedMachineName : 'aaaaeeeeiiiioooo' ,
158
158
} ,
159
159
{
160
160
machineName : 'ȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ' ,
161
- replacePattern : 'a-zA-Z0-9-_.~' ,
161
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
162
162
replaceChar : '_' ,
163
163
maxlength : 64 ,
164
164
expectedMachineName : 'rrrruuuussttyyhh' ,
165
165
} ,
166
166
{
167
167
machineName : 'ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯ' ,
168
- replacePattern : 'a-zA-Z0-9-_.~' ,
168
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
169
169
replaceChar : '_' ,
170
170
maxlength : 64 ,
171
171
expectedMachineName : 'ndououzzaaeeoooooo' ,
172
172
} ,
173
173
{
174
174
machineName : 'ȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿ' ,
175
- replacePattern : 'a-zA-Z0-9-_.~' ,
175
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
176
176
replaceChar : '_' ,
177
177
maxlength : 64 ,
178
178
expectedMachineName : 'ooyylntjdbqpacclts' ,
179
179
} ,
180
180
{
181
181
machineName : 'ɀɁɂɃɄɅɆɇɈɉɊɋɌɍɎɏ' ,
182
- replacePattern : 'a-zA-Z0-9-_.~' ,
182
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
183
183
replaceChar : '_' ,
184
184
maxlength : 64 ,
185
185
expectedMachineName : 'z_buveejjqqrryy' ,
186
186
} ,
187
187
// Test for maximum length of machine-name
188
188
{
189
189
machineName : 'This is the test for max length' ,
190
- replacePattern : 'a-zA-Z0-9-_.~' ,
190
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
191
191
replaceChar : '_' ,
192
192
maxlength : 20 ,
193
193
expectedMachineName : 'this_is_the_test_for' ,
194
194
} ,
195
195
{
196
196
machineName : 'Ma@Chi!~' ,
197
- replacePattern : 'a-zA-Z0-9-_.~' ,
197
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
198
198
replaceChar : '_' ,
199
199
maxlength : 5 ,
200
200
expectedMachineName : 'ma_ch' ,
201
201
} ,
202
202
{
203
203
machineName : 'Test for custom replace character' ,
204
- replacePattern : 'a-zA-Z0-9-_.~' ,
204
+ replacePattern : '[^ a-zA-Z0-9-_.~]+ ' ,
205
205
replaceChar : '-' ,
206
206
maxlength : 64 ,
207
207
expectedMachineName : 'test-for-custom-replace-character' ,
208
208
} ,
209
+ {
210
+ machineName : 'Test for unusual replace pattern' ,
211
+ replacePattern : '([^a-z0-9_]+)|(^custom$)' ,
212
+ replaceChar : '_' ,
213
+ maxlength : 64 ,
214
+ expectedMachineName : 'test_for_unusual_replace_pattern' ,
215
+ } ,
216
+ {
217
+ machineName : 'custom' ,
218
+ replacePattern : '([^a-z0-9_]+)|(^custom$)' ,
219
+ replaceChar : '_' ,
220
+ maxlength : 64 ,
221
+ expectedMachineName : '_' ,
222
+ } ,
209
223
// cSpell:enable
210
224
] ;
211
225
module . exports = {
0 commit comments