@@ -32,7 +32,7 @@ pub(crate) fn sort(
32
32
// See Bug 1945295: https://bugzilla.mozilla.org/show_bug.cgi?id=1945295
33
33
// If order is equal and order_hint is None for both, fall back to alphabetical sorting
34
34
if order == std:: cmp:: Ordering :: Equal {
35
- return a. identifier . cmp ( & b. identifier ) ;
35
+ return a. name . cmp ( & b. name ) ;
36
36
}
37
37
38
38
order
@@ -76,9 +76,14 @@ mod tests {
76
76
use crate :: types:: * ;
77
77
use pretty_assertions:: assert_eq;
78
78
79
- fn create_engine ( engine_id : & str , order_hint : Option < u32 > ) -> SearchEngineDefinition {
79
+ fn create_engine (
80
+ engine_id : & str ,
81
+ order_hint : Option < u32 > ,
82
+ name : Option < & str > ,
83
+ ) -> SearchEngineDefinition {
80
84
SearchEngineDefinition {
81
85
identifier : engine_id. to_string ( ) ,
86
+ name : name. unwrap_or ( engine_id) . to_string ( ) ,
82
87
order_hint,
83
88
..Default :: default ( )
84
89
}
@@ -87,9 +92,9 @@ mod tests {
87
92
#[ test]
88
93
fn test_find_engine_with_match_mut_starts_with ( ) {
89
94
let mut engines = vec ! [
90
- create_engine( "wiki-ca" , None ) ,
91
- create_engine( "wiki-uk" , None ) ,
92
- create_engine( "test-engine" , None ) ,
95
+ create_engine( "wiki-ca" , None , None ) ,
96
+ create_engine( "wiki-uk" , None , None ) ,
97
+ create_engine( "test-engine" , None , None ) ,
93
98
] ;
94
99
let found_engine = find_engine_with_match_mut ( & mut engines, & "wiki*" . to_string ( ) ) ;
95
100
@@ -103,9 +108,9 @@ mod tests {
103
108
#[ test]
104
109
fn test_set_engine_order_full_list ( ) {
105
110
let mut engines = vec ! [
106
- create_engine( "last-engine" , None ) ,
107
- create_engine( "secondary-engine" , None ) ,
108
- create_engine( "primary-engine" , None ) ,
111
+ create_engine( "last-engine" , None , None ) ,
112
+ create_engine( "secondary-engine" , None , None ) ,
113
+ create_engine( "primary-engine" , None , None ) ,
109
114
] ;
110
115
let ordered_engines_list = vec ! [
111
116
"primary-engine" . to_string( ) ,
@@ -133,9 +138,9 @@ mod tests {
133
138
#[ test]
134
139
fn test_set_engine_order_partial_list ( ) {
135
140
let mut engines = vec ! [
136
- create_engine( "secondary-engine" , None ) ,
137
- create_engine( "primary-engine" , None ) ,
138
- create_engine( "no-order-hint-engine" , None ) ,
141
+ create_engine( "secondary-engine" , None , None ) ,
142
+ create_engine( "primary-engine" , None , None ) ,
143
+ create_engine( "no-order-hint-engine" , None , None ) ,
139
144
] ;
140
145
let ordered_engines_list =
141
146
vec ! [ "primary-engine" . to_string( ) , "secondary-engine" . to_string( ) ] ;
@@ -161,9 +166,9 @@ mod tests {
161
166
let default_engine_id = None ;
162
167
let default_private_engine_id = None ;
163
168
let mut engines = vec ! [
164
- create_engine( "c-engine" , Some ( 3 ) ) ,
165
- create_engine( "b-engine" , Some ( 2 ) ) ,
166
- create_engine( "a-engine" , Some ( 1 ) ) ,
169
+ create_engine( "c-engine" , Some ( 3 ) , None ) ,
170
+ create_engine( "b-engine" , Some ( 2 ) , None ) ,
171
+ create_engine( "a-engine" , Some ( 1 ) , None ) ,
167
172
] ;
168
173
engines. sort_by ( |a, b| {
169
174
sort (
@@ -187,9 +192,9 @@ mod tests {
187
192
let default_engine_id = None ;
188
193
let default_private_engine_id = None ;
189
194
let mut engines = vec ! [
190
- create_engine( "c-engine" , None ) ,
191
- create_engine( "b-engine" , None ) ,
192
- create_engine( "a-engine" , None ) ,
195
+ create_engine( "c-engine" , None , None ) ,
196
+ create_engine( "b-engine" , None , None ) ,
197
+ create_engine( "a-engine" , None , None ) ,
193
198
] ;
194
199
engines. sort_by ( |a, b| {
195
200
sort (
@@ -213,12 +218,14 @@ mod tests {
213
218
let default_engine_id = None ;
214
219
let default_private_engine_id = None ;
215
220
let mut engines = vec ! [
216
- create_engine( "f-engine" , None ) ,
217
- create_engine( "e-engine" , None ) ,
218
- create_engine( "d-engine" , None ) ,
219
- create_engine( "c-engine" , Some ( 4 ) ) ,
220
- create_engine( "b-engine" , Some ( 5 ) ) ,
221
- create_engine( "a-engine" , Some ( 6 ) ) ,
221
+ // Identifiers are the opposite order to the names, so that we
222
+ // can show that we are sorting alphabetically by name.
223
+ create_engine( "d-engine" , None , Some ( "Charlie" ) ) ,
224
+ create_engine( "e-engine" , None , Some ( "Beta" ) ) ,
225
+ create_engine( "f-engine" , None , Some ( "Alpha" ) ) ,
226
+ create_engine( "c-engine" , Some ( 4 ) , None ) ,
227
+ create_engine( "b-engine" , Some ( 5 ) , None ) ,
228
+ create_engine( "a-engine" , Some ( 6 ) , None ) ,
222
229
] ;
223
230
engines. sort_by ( |a, b| {
224
231
sort (
@@ -231,7 +238,7 @@ mod tests {
231
238
232
239
let actual_order: Vec < & str > = engines. iter ( ) . map ( |e| e. identifier . as_str ( ) ) . collect ( ) ;
233
240
let expected_order = vec ! [
234
- "a-engine" , "b-engine" , "c-engine" , "d -engine" , "e-engine" , "f -engine" ,
241
+ "a-engine" , "b-engine" , "c-engine" , "f -engine" , "e-engine" , "d -engine" ,
235
242
] ;
236
243
assert_eq ! (
237
244
actual_order, expected_order,
@@ -244,9 +251,9 @@ mod tests {
244
251
let default_engine_id = Some ( "a-engine" . to_string ( ) ) ;
245
252
let default_private_engine_id = Some ( "b-engine" . to_string ( ) ) ;
246
253
let mut engines = vec ! [
247
- create_engine( "c-engine" , Some ( 3 ) ) ,
248
- create_engine( "a-engine" , Some ( 1 ) ) , // Default engine should be first
249
- create_engine( "b-engine" , Some ( 2 ) ) , // Default private engine should be second
254
+ create_engine( "c-engine" , Some ( 3 ) , None ) ,
255
+ create_engine( "a-engine" , Some ( 1 ) , None ) , // Default engine should be first
256
+ create_engine( "b-engine" , Some ( 2 ) , None ) , // Default private engine should be second
250
257
] ;
251
258
engines. sort_by ( |a, b| {
252
259
sort (
0 commit comments