in components/search/src/filter.rs [735:859]
fn test_from_configuration_details_merges_variants() {
let result = SearchEngineDefinition::from_configuration_details(
"test",
Lazy::force(&ENGINE_BASE).clone(),
&JSONEngineVariant {
environment: JSONVariantEnvironment {
all_regions_and_locales: true,
..Default::default()
},
optional: true,
partner_code: Some("trek".to_string()),
telemetry_suffix: Some("star".to_string()),
urls: Some(JSONEngineUrls {
search: Some(JSONEngineUrl {
base: Some("https://example.com/variant".to_string()),
method: Some(JSONEngineMethod::Get),
params: Some(vec![SearchUrlParam {
name: "variant".to_string(),
value: Some("test variant".to_string()),
enterprise_value: None,
experiment_config: None,
}]),
search_term_param_name: Some("ship".to_string()),
}),
suggestions: Some(JSONEngineUrl {
base: Some("https://example.com/suggestions-variant".to_string()),
method: Some(JSONEngineMethod::Get),
params: Some(vec![SearchUrlParam {
name: "suggest-variant".to_string(),
value: Some("sugg test variant".to_string()),
enterprise_value: None,
experiment_config: None,
}]),
search_term_param_name: Some("variant".to_string()),
}),
trending: Some(JSONEngineUrl {
base: Some("https://example.com/trending-variant".to_string()),
method: Some(JSONEngineMethod::Get),
params: Some(vec![SearchUrlParam {
name: "trend-variant".to_string(),
value: Some("trend test variant".to_string()),
enterprise_value: None,
experiment_config: None,
}]),
search_term_param_name: Some("trend".to_string()),
}),
search_form: Some(JSONEngineUrl {
base: Some("https://example.com/search_form".to_string()),
method: Some(crate::JSONEngineMethod::Get),
params: Some(vec![SearchUrlParam {
name: "search-form-name".to_string(),
value: Some("search-form-value".to_string()),
enterprise_value: None,
experiment_config: None,
}]),
search_term_param_name: None,
}),
}),
sub_variants: vec![],
},
&None,
);
assert_eq!(
result,
SearchEngineDefinition {
aliases: vec!["foo".to_string(), "bar".to_string()],
charset: "ISO-8859-15".to_string(),
classification: SearchEngineClassification::Unknown,
identifier: "test".to_string(),
partner_code: "trek".to_string(),
name: "Test".to_string(),
optional: true,
order_hint: None,
telemetry_suffix: "star".to_string(),
urls: SearchEngineUrls {
search: SearchEngineUrl {
base: "https://example.com/variant".to_string(),
method: "GET".to_string(),
params: vec![SearchUrlParam {
name: "variant".to_string(),
value: Some("test variant".to_string()),
enterprise_value: None,
experiment_config: None,
}],
search_term_param_name: Some("ship".to_string()),
},
suggestions: Some(SearchEngineUrl {
base: "https://example.com/suggestions-variant".to_string(),
method: "GET".to_string(),
params: vec![SearchUrlParam {
name: "suggest-variant".to_string(),
value: Some("sugg test variant".to_string()),
enterprise_value: None,
experiment_config: None,
}],
search_term_param_name: Some("variant".to_string()),
}),
trending: Some(SearchEngineUrl {
base: "https://example.com/trending-variant".to_string(),
method: "GET".to_string(),
params: vec![SearchUrlParam {
name: "trend-variant".to_string(),
value: Some("trend test variant".to_string()),
enterprise_value: None,
experiment_config: None,
}],
search_term_param_name: Some("trend".to_string()),
}),
search_form: Some(SearchEngineUrl {
base: "https://example.com/search_form".to_string(),
method: "GET".to_string(),
params: vec![SearchUrlParam {
name: "search-form-name".to_string(),
value: Some("search-form-value".to_string()),
enterprise_value: None,
experiment_config: None,
}],
search_term_param_name: None,
}),
},
click_url: None
}
)
}