@@ -44,6 +44,25 @@ pub fn is_config_test_mode_activated() -> bool {
4444 CONFIG_TEST_MODE_ACTIVATED . load ( Ordering :: SeqCst )
4545}
4646
47+ pub fn is_test_bundle_wanted ( web_bundle : Option < String > ) -> bool {
48+ if !is_config_test_mode_activated ( ) {
49+ return false ;
50+ }
51+ match web_bundle {
52+ None => true ,
53+ Some ( x) if x. contains ( "test-bundle://" ) => true ,
54+ _ => false ,
55+ }
56+ }
57+
58+ pub fn maybe_return_test_bundle ( web_bundle : Option < String > ) -> Result < Box < dyn Bundle > > {
59+ if is_test_bundle_wanted ( web_bundle) {
60+ Ok ( Box :: < crate :: test_util:: TestBundle > :: default ( ) )
61+ } else {
62+ Err ( ErrorKind :: Msg ( "not asking for the default test bundle" . to_owned ( ) ) . into ( ) )
63+ }
64+ }
65+
4766#[ cfg_attr( feature = "serde" , derive( Deserialize , Serialize ) ) ]
4867pub struct PersistentConfig {
4968 default_bundles : Vec < BundleInfo > ,
@@ -122,6 +141,10 @@ impl PersistentConfig {
122141 custom_cache_root : Option < & Path > ,
123142 status : & mut dyn StatusBackend ,
124143 ) -> Result < Box < dyn Bundle > > {
144+ if let Ok ( test_bundle) = maybe_return_test_bundle ( Some ( url. to_owned ( ) ) ) {
145+ return Ok ( test_bundle) ;
146+ }
147+
125148 let mut cache = if let Some ( root) = custom_cache_root {
126149 Cache :: get_for_custom_directory ( root)
127150 } else {
@@ -156,9 +179,8 @@ impl PersistentConfig {
156179 ) -> Result < Box < dyn Bundle > > {
157180 use std:: io;
158181
159- if CONFIG_TEST_MODE_ACTIVATED . load ( Ordering :: SeqCst ) {
160- let bundle = crate :: test_util:: TestBundle :: default ( ) ;
161- return Ok ( Box :: new ( bundle) ) ;
182+ if let Ok ( test_bundle) = maybe_return_test_bundle ( None ) {
183+ return Ok ( test_bundle) ;
162184 }
163185
164186 if self . default_bundles . len ( ) != 1 {
@@ -183,7 +205,7 @@ impl PersistentConfig {
183205 }
184206
185207 pub fn format_cache_path ( & self ) -> Result < PathBuf > {
186- if CONFIG_TEST_MODE_ACTIVATED . load ( Ordering :: SeqCst ) {
208+ if is_config_test_mode_activated ( ) {
187209 Ok ( crate :: test_util:: test_path ( & [ ] ) )
188210 } else {
189211 Ok ( app_dirs:: ensure_user_cache_dir ( "formats" ) ?)
0 commit comments