@@ -562,6 +562,15 @@ pub fn delete_all_metadata_for_page(db: &PlacesDb, place_id: RowId) -> Result<()
562562 Ok ( ( ) )
563563}
564564
565+ /// Delete all metadata for search queries table.
566+ pub fn delete_all_metadata_for_search ( db : & PlacesDb ) -> Result < ( ) > {
567+ db. execute_cached (
568+ "DELETE FROM moz_places_metadata_search_queries" ,
569+ [ ] ,
570+ ) ?;
571+ Ok ( ( ) )
572+ }
573+
565574pub fn delete_metadata (
566575 db : & PlacesDb ,
567576 url : & Url ,
@@ -2392,6 +2401,96 @@ mod tests {
23922401 assert_table_size ! ( & conn, "moz_places_metadata_search_queries" , 0 ) ;
23932402 }
23942403
2404+ #[ test]
2405+ fn test_delete_all_metadata_for_search ( ) {
2406+ let conn = PlacesDb :: open_in_memory ( ConnectionType :: ReadWrite ) . expect ( "memory db" ) ;
2407+
2408+ note_observation ! ( & conn,
2409+ url "https://www.mozilla.org/1/" ,
2410+ view_time None ,
2411+ search_term Some ( "search_term_1" ) ,
2412+ document_type None ,
2413+ referrer_url None ,
2414+ title None
2415+ ) ;
2416+
2417+ note_observation ! ( & conn,
2418+ url "https://www.mozilla.org/2/" ,
2419+ view_time None ,
2420+ search_term Some ( "search_term_2" ) ,
2421+ document_type None ,
2422+ referrer_url None ,
2423+ title None
2424+ ) ;
2425+
2426+ assert_table_size ! ( & conn, "moz_places_metadata" , 2 ) ;
2427+ assert_table_size ! ( & conn, "moz_places_metadata_search_queries" , 2 ) ;
2428+
2429+ delete_all_metadata_for_search ( & conn) . expect ( "query ok" ) ;
2430+
2431+ assert_table_size ! ( & conn, "moz_places_metadata" , 0 ) ;
2432+ assert_table_size ! ( & conn, "moz_places_metadata_search_queries" , 0 ) ;
2433+ }
2434+
2435+ #[ test]
2436+ fn test_delete_all_metadata_for_search_only_deletes_search_metadata ( ) {
2437+ let conn = PlacesDb :: open_in_memory ( ConnectionType :: ReadWrite ) . expect ( "memory db" ) ;
2438+
2439+ // url | search_term | referrer
2440+ // 1 | 1 | 0
2441+ // 1 | 0 | 1
2442+ // 1 | 1 | 0
2443+ // 1 | 0 | 1
2444+
2445+ note_observation ! ( & conn,
2446+ url "https://www.mozilla.org/1/" ,
2447+ view_time None ,
2448+ search_term Some ( "search_term_1" ) ,
2449+ document_type None ,
2450+ referrer_url None ,
2451+ title None
2452+ ) ;
2453+
2454+ note_observation ! (
2455+ & conn,
2456+ url "https://www.mozilla.org/2/" ,
2457+ view_time Some ( 20000 ) ,
2458+ search_term None ,
2459+ document_type Some ( DocumentType :: Media ) ,
2460+ referrer_url Some ( "https://www.google.com/search?client=firefox-b-d&q=mozilla+firefox" ) ,
2461+ title None
2462+ ) ;
2463+
2464+ note_observation ! ( & conn,
2465+ url "https://www.mozilla.org/3/" ,
2466+ view_time None ,
2467+ search_term Some ( "search_term_2" ) ,
2468+ document_type None ,
2469+ referrer_url None ,
2470+ title None
2471+ ) ;
2472+
2473+ note_observation ! (
2474+ & conn,
2475+ url "https://www.mozilla.org/4/" ,
2476+ view_time Some ( 20000 ) ,
2477+ search_term None ,
2478+ document_type Some ( DocumentType :: Regular ) ,
2479+ referrer_url Some ( "https://www.google.com/search?client=firefox-b-d&q=mozilla+firefox" ) ,
2480+ title None
2481+ ) ;
2482+
2483+ assert_eq ! ( 4 , get_since( & conn, 0 ) . expect( "get worked" ) . len( ) ) ;
2484+
2485+ assert_table_size ! ( & conn, "moz_places_metadata" , 4 ) ;
2486+ assert_table_size ! ( & conn, "moz_places_metadata_search_queries" , 2 ) ;
2487+
2488+ delete_all_metadata_for_search ( & conn) . expect ( "query ok" ) ;
2489+
2490+ assert_table_size ! ( & conn, "moz_places_metadata" , 2 ) ;
2491+ assert_table_size ! ( & conn, "moz_places_metadata_search_queries" , 0 ) ;
2492+ }
2493+
23952494 #[ test]
23962495 fn test_if_page_missing_behavior ( ) {
23972496 let conn = PlacesDb :: open_in_memory ( ConnectionType :: ReadWrite ) . expect ( "memory db" ) ;
0 commit comments