1
- //! Configuration settings for [`HttpServerProvider`](crate::HttpServerProvider).
2
- //! The "values" map in the component link definition may contain
3
- //! one or more of the following keys,
1
+ //! Common Configuration settings for the http server provider and built in http server. This
2
+ //! requires that the `http` feature be enabled.
3
+ //!
4
+ //! The "values" map in the component link definition may contain one or more of the following keys,
4
5
//! which determine how the configuration is parsed.
5
6
//!
6
- //! For the key...
7
- /// `config_file`: load configuration from file name.
8
- /// Interprets file as json or toml, based on file extension.
9
- /// `config_b64`: Configuration is a base64-encoded json string
10
- /// `config_json`: Configuration is a raw json string
7
+ //! For the key... `config_file`: load configuration from file name. Interprets file as json
8
+ /// or toml, based on file extension. `config_b64`: Configuration is a base64-encoded json
9
+ /// string `config_json`: Configuration is a raw json string
11
10
///
12
11
/// If no configuration is provided, the default settings below will be used:
13
12
/// - TLS is disabled
14
- /// - CORS allows all hosts(origins), most methods, and common headers
15
- /// (see constants below).
13
+ /// - CORS allows all hosts(origins), most methods, and common headers (see constants below).
16
14
/// - Default listener is bound to 127.0.0.1 port 8000.
17
15
///
18
16
use core:: fmt;
@@ -387,8 +385,7 @@ impl FromStr for CorsOrigin {
387
385
return Err ( std:: io:: Error :: new (
388
386
ErrorKind :: InvalidInput ,
389
387
format ! (
390
- "Cors origin invalid schema {}, only [http] and [https] are supported: " ,
391
- uri. scheme_str( ) . unwrap( )
388
+ "Cors origin invalid schema {s}, only [http] and [https] are supported: " ,
392
389
) ,
393
390
) ) ;
394
391
}
@@ -532,7 +529,7 @@ where
532
529
mod test {
533
530
use std:: str:: FromStr ;
534
531
535
- use crate :: settings :: { CorsOrigin , ServiceSettings } ;
532
+ use super :: { CorsOrigin , ServiceSettings } ;
536
533
537
534
const GOOD_ORIGINS : & [ & str ] = & [
538
535
// origins that should be parsed correctly
@@ -561,9 +558,11 @@ mod test {
561
558
fn settings_init ( ) {
562
559
let s = ServiceSettings :: default ( ) ;
563
560
assert ! ( s. address. is_ipv4( ) ) ;
561
+ let allowed_origins = s
562
+ . cors_allowed_origins
563
+ . expect ( "allowed_origins should be set" ) ;
564
564
assert ! ( s. cors_allowed_methods. is_some( ) ) ;
565
- assert ! ( s. cors_allowed_origins. is_some( ) ) ;
566
- assert ! ( s. cors_allowed_origins. unwrap( ) . 0 . is_empty( ) ) ;
565
+ assert ! ( allowed_origins. 0 . is_empty( ) ) ;
567
566
}
568
567
569
568
#[ test]
@@ -575,10 +574,21 @@ mod test {
575
574
}"# ;
576
575
577
576
let s = ServiceSettings :: from_json ( json) . expect ( "parse_json" ) ;
578
- assert_eq ! ( s. cors_allowed_headers. as_ref( ) . unwrap( ) . 0 . len( ) , 1 ) ;
579
577
assert_eq ! (
580
- s. cors_allowed_headers. as_ref( ) . unwrap( ) . 0 . first( ) . unwrap( ) ,
581
- "X-Cookies"
578
+ s. cors_allowed_headers
579
+ . as_ref( )
580
+ . expect( "allowed headers should be set" )
581
+ . 0
582
+ . len( ) ,
583
+ 1
584
+ ) ;
585
+ assert_eq ! (
586
+ s. cors_allowed_headers
587
+ . as_ref( )
588
+ . expect( "allowed headers should be set" )
589
+ . 0
590
+ . first( ) ,
591
+ Some ( & "X-Cookies" . into( ) )
582
592
) ;
583
593
}
584
594
@@ -588,24 +598,22 @@ mod test {
588
598
for valid in GOOD_ORIGINS {
589
599
let o = serde_json:: from_value :: < CorsOrigin > ( serde_json:: Value :: String (
590
600
( * valid) . to_string ( ) ,
591
- ) ) ;
592
- assert ! ( o . is_ok ( ) , "from_value '{valid}' ") ;
601
+ ) )
602
+ . expect ( "deserialize should succeed ") ;
593
603
594
604
// test as_ref()
595
- assert_eq ! ( & o. unwrap ( ) . 0 , valid) ;
605
+ assert_eq ! ( & o. 0 , valid) ;
596
606
}
597
607
}
598
608
599
609
#[ test]
600
610
fn origins_from_str ( ) {
601
611
// test CorsOrigin
602
612
for & valid in GOOD_ORIGINS {
603
- let o = CorsOrigin :: from_str ( valid) ;
604
- println ! ( "{valid}: {o:?}" ) ;
605
- assert ! ( o. is_ok( ) , "from_str '{valid}'" ) ;
613
+ let o = CorsOrigin :: from_str ( valid) . expect ( "deserialize should succeed" ) ;
606
614
607
615
// test as_ref()
608
- assert_eq ! ( & o. unwrap ( ) . 0 , valid) ;
616
+ assert_eq ! ( & o. 0 , valid) ;
609
617
}
610
618
}
611
619
@@ -614,11 +622,9 @@ mod test {
614
622
for bad in BAD_ORIGINS {
615
623
let o =
616
624
serde_json:: from_value :: < CorsOrigin > ( serde_json:: Value :: String ( ( * bad) . to_string ( ) ) ) ;
617
- println ! ( "{bad}: {o:?}" ) ;
618
625
assert ! ( o. is_err( ) , "from_value '{bad}' (expect err)" ) ;
619
626
620
627
let o = serde_json:: from_str :: < CorsOrigin > ( bad) ;
621
- println ! ( "{bad}: {o:?}" ) ;
622
628
assert ! ( o. is_err( ) , "from_str '{bad}' (expect err)" ) ;
623
629
}
624
630
}
0 commit comments