@@ -11,17 +11,15 @@ const VALID_UA_BROWSER: &[&str] = &["Chrome", "Firefox", "Safari", "Opera"];
1111// field). Windows has many values and we only care that its Windows
1212const VALID_UA_OS : & [ & str ] = & [ "Firefox OS" , "Linux" , "Mac OSX" ] ;
1313
14- pub fn parse_user_agent < ' a > (
15- parser : & ' a Parser ,
16- agent : & str ,
17- ) -> ( WootheeResult < ' a > , & ' a str , & ' a str ) {
14+ pub fn parse_user_agent ( agent : & str ) -> ( WootheeResult , & str , & str ) {
15+ let parser = Parser :: new ( ) ;
1816 let wresult = parser. parse ( & agent) . unwrap_or_else ( || WootheeResult {
1917 name : "" ,
2018 category : "" ,
2119 os : "" ,
22- os_version : "" . to_string ( ) ,
20+ os_version : "" . into ( ) ,
2321 browser_type : "" ,
24- version : "" . to_string ( ) ,
22+ version : "" ,
2523 vendor : "" ,
2624 } ) ;
2725
@@ -43,15 +41,12 @@ pub fn parse_user_agent<'a>(
4341
4442#[ cfg( test) ]
4543mod tests {
46- use woothee:: parser:: Parser ;
47-
4844 use super :: parse_user_agent;
4945
5046 #[ test]
5147 fn test_linux ( ) {
5248 let agent = r#"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2) Gecko/20090807 Mandriva Linux/1.9.1.2-1.1mud2009.1 (2009.1) Firefox/3.5.2 FirePHP/0.3,gzip(gfe),gzip(gfe)"# ;
53- let parser = Parser :: new ( ) ;
54- let ( ua_result, metrics_os, metrics_browser) = parse_user_agent ( & parser, & agent) ;
49+ let ( ua_result, metrics_os, metrics_browser) = parse_user_agent ( & agent) ;
5550 assert_eq ! ( metrics_os, "Linux" ) ;
5651 assert_eq ! ( ua_result. os, "Linux" ) ;
5752 assert_eq ! ( metrics_browser, "Firefox" ) ;
@@ -60,8 +55,7 @@ mod tests {
6055 #[ test]
6156 fn test_windows ( ) {
6257 let agent = r#"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729)"# ;
63- let parser = Parser :: new ( ) ;
64- let ( ua_result, metrics_os, metrics_browser) = parse_user_agent ( & parser, & agent) ;
58+ let ( ua_result, metrics_os, metrics_browser) = parse_user_agent ( & agent) ;
6559 assert_eq ! ( metrics_os, "Windows" ) ;
6660 assert_eq ! ( ua_result. os, "Windows 7" ) ;
6761 assert_eq ! ( metrics_browser, "Firefox" ) ;
@@ -71,8 +65,7 @@ mod tests {
7165 fn test_osx ( ) {
7266 let agent =
7367 r#"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:2.1.1) Gecko/ Firefox/5.0.1"# ;
74- let parser = Parser :: new ( ) ;
75- let ( ua_result, metrics_os, metrics_browser) = parse_user_agent ( & parser, & agent) ;
68+ let ( ua_result, metrics_os, metrics_browser) = parse_user_agent ( & agent) ;
7669 assert_eq ! ( metrics_os, "Mac OSX" ) ;
7770 assert_eq ! ( ua_result. os, "Mac OSX" ) ;
7871 assert_eq ! ( metrics_browser, "Firefox" ) ;
@@ -82,8 +75,7 @@ mod tests {
8275 fn test_other ( ) {
8376 let agent =
8477 r#"BlackBerry9000/4.6.0.167 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/102"# ;
85- let parser = Parser :: new ( ) ;
86- let ( ua_result, metrics_os, metrics_browser) = parse_user_agent ( & parser, & agent) ;
78+ let ( ua_result, metrics_os, metrics_browser) = parse_user_agent ( & agent) ;
8779 assert_eq ! ( metrics_os, "Other" ) ;
8880 assert_eq ! ( ua_result. os, "BlackBerry" ) ;
8981 assert_eq ! ( metrics_browser, "Other" ) ;
0 commit comments