Revision control
Copy as Markdown
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
*/
use std::collections::HashMap;
use crate::{
mars::DefaultMARSClient,
models::{AdCallbacks, AdResponse, IABContentTaxonomy, MozAd},
IABContent, MozAdsPlacement, MozAdsPlacementConfig,
};
pub const TEST_CONTEXT_ID: &str = "test-context-id";
pub fn get_example_happy_placement_config() -> Vec<MozAdsPlacementConfig> {
vec![
MozAdsPlacementConfig {
placement_id: "example_placement_1".to_string(),
iab_content: Some(IABContent {
taxonomy: IABContentTaxonomy::IAB2_1,
category_ids: vec!["entertainment".to_string()],
}),
fixed_size: None,
},
MozAdsPlacementConfig {
placement_id: "example_placement_2".to_string(),
iab_content: Some(IABContent {
taxonomy: IABContentTaxonomy::IAB3_0,
category_ids: vec![],
}),
fixed_size: None,
},
]
}
pub fn get_example_happy_ad_response() -> AdResponse {
AdResponse {
data: HashMap::from([
(
"example_placement_1".to_string(),
vec![MozAd {
format: Some("billboard".to_string()),
block_key: None,
alt_text: Some("An ad for a puppy".to_string()),
callbacks: Some(AdCallbacks {
impression: Some(
),
}),
}],
),
(
"example_placement_2".to_string(),
vec![MozAd {
format: Some("skyscraper".to_string()),
block_key: None,
alt_text: Some("An ad for a pet duck".to_string()),
callbacks: Some(AdCallbacks {
impression: Some(
),
}),
}],
),
]),
}
}
pub fn get_example_happy_placements() -> HashMap<String, MozAdsPlacement> {
let mut placements = HashMap::new();
placements.insert(
"example_placement_1".to_string(),
MozAdsPlacement {
placement_config: MozAdsPlacementConfig {
placement_id: "example_placement_1".to_string(),
iab_content: Some(IABContent {
taxonomy: IABContentTaxonomy::IAB2_1,
category_ids: vec!["entertainment".to_string()],
}),
fixed_size: None,
},
content: MozAd {
format: Some("billboard".to_string()),
block_key: None,
alt_text: Some("An ad for a puppy".to_string()),
callbacks: Some(AdCallbacks {
impression: Some(
),
}),
},
},
);
placements.insert(
"example_placement_2".to_string(),
MozAdsPlacement {
placement_config: MozAdsPlacementConfig {
placement_id: "example_placement_2".to_string(),
iab_content: Some(IABContent {
taxonomy: IABContentTaxonomy::IAB3_0,
category_ids: vec![],
}),
fixed_size: None,
},
content: MozAd {
format: Some("skyscraper".to_string()),
block_key: None,
alt_text: Some("An ad for a pet duck".to_string()),
callbacks: Some(AdCallbacks {
impression: Some(
),
}),
},
},
);
placements
}
pub fn create_test_client(mock_server_url: String) -> DefaultMARSClient {
DefaultMARSClient::new_with_endpoint(TEST_CONTEXT_ID.to_string(), mock_server_url)
}