@@ -590,6 +590,18 @@ def test_scanpipe_views_project_details_scan_summary_panels(self):
590590 self .assertContains (response , expected1 )
591591 self .assertContains (response , expected2 )
592592
593+ def test_scanpipe_views_project_details_scan_summary_language_url_encoding (self ):
594+ summary_file = self .project1 .get_output_file_path ("summary" , "json" )
595+ scan_summary_json = {
596+ "primary_language" : [{"value" : "C#" , "count" : 1 }],
597+ "other_languages" : [{"value" : "C#" , "count" : 1 }],
598+ }
599+ summary_file .write_text (json .dumps (scan_summary_json ))
600+ url = self .project1 .get_absolute_url ()
601+ response = self .client .get (url )
602+ self .assertContains (response , "?programming_language=C%23" )
603+ self .assertNotContains (response , "?programming_language=C#" )
604+
593605 def test_scanpipe_views_project_details_get_license_clarity_data (self ):
594606 get_license_clarity_data = ProjectDetailView .get_license_clarity_data
595607
@@ -1039,6 +1051,17 @@ def test_scanpipe_views_codebase_resource_list_view_bad_search_query(self):
10391051 expected_error = "The provided search value is invalid: No closing quotation"
10401052 self .assertContains (response , expected_error )
10411053
1054+ def test_scanpipe_views_codebase_resource_list_programming_language_url_encoding (
1055+ self ,
1056+ ):
1057+ make_resource_file (
1058+ self .project1 , path = "csharp_file.cs" , programming_language = "C#"
1059+ )
1060+ url = reverse ("project_resources" , args = [self .project1 .slug ])
1061+ response = self .client .get (url )
1062+ self .assertContains (response , "?programming_language=C%23" )
1063+ self .assertNotContains (response , "?programming_language=C#" )
1064+
10421065 def test_scanpipe_views_codebase_resource_details_view_tab_image (self ):
10431066 resource1 = make_resource_file (self .project1 , "file1.ext" )
10441067 response = self .client .get (resource1 .get_absolute_url ())
0 commit comments