| 
									
										
										
										
											2020-10-10 14:16:11 +02:00
										 |  |  | # typed: false | 
					
						
							| 
									
										
										
										
											2020-08-08 07:16:06 +05:30
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | require "livecheck/strategy/sourceforge" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe Homebrew::Livecheck::Strategy::Sourceforge do | 
					
						
							|  |  |  |   subject(:sourceforge) { described_class } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-28 13:20:12 -04:00
										 |  |  |   let(:sourceforge_urls) { | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       typical:       "https://downloads.sourceforge.net/project/abc/def-1.2.3.tar.gz", | 
					
						
							|  |  |  |       rss:           "https://sourceforge.net/projects/abc/rss", | 
					
						
							|  |  |  |       rss_with_path: "https://sourceforge.net/projects/abc/rss?path=/def", | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2020-08-08 07:16:06 +05:30
										 |  |  |   let(:non_sourceforge_url) { "https://brew.sh/test" } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-28 13:20:12 -04:00
										 |  |  |   let(:generated) { | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       typical: { | 
					
						
							|  |  |  |         url:   "https://sourceforge.net/projects/abc/rss", | 
					
						
							|  |  |  |         regex: %r{url=.*?/abc/files/.*?[-_/](\d+(?:[-.]\d+)+)[-_/%.]}i, | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       rss:     { | 
					
						
							|  |  |  |         regex: %r{url=.*?/abc/files/.*?[-_/](\d+(?:[-.]\d+)+)[-_/%.]}i, | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-08 07:16:06 +05:30
										 |  |  |   describe "::match?" do | 
					
						
							| 
									
										
										
										
											2021-08-10 17:39:11 -04:00
										 |  |  |     it "returns true for a SourceForge URL" do | 
					
						
							| 
									
										
										
										
											2021-07-28 13:20:12 -04:00
										 |  |  |       expect(sourceforge.match?(sourceforge_urls[:typical])).to be true | 
					
						
							|  |  |  |       expect(sourceforge.match?(sourceforge_urls[:rss])).to be true | 
					
						
							|  |  |  |       expect(sourceforge.match?(sourceforge_urls[:rss_with_path])).to be true | 
					
						
							| 
									
										
										
										
											2020-08-08 07:16:06 +05:30
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-10 17:39:11 -04:00
										 |  |  |     it "returns false for a non-SourceForge URL" do | 
					
						
							| 
									
										
										
										
											2020-08-08 07:16:06 +05:30
										 |  |  |       expect(sourceforge.match?(non_sourceforge_url)).to be false | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2021-07-28 13:20:12 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |   describe "::generate_input_values" do | 
					
						
							|  |  |  |     it "returns a hash containing url and regex for an Apache URL" do | 
					
						
							|  |  |  |       expect(sourceforge.generate_input_values(sourceforge_urls[:typical])).to eq(generated[:typical]) | 
					
						
							|  |  |  |       expect(sourceforge.generate_input_values(sourceforge_urls[:rss])).to eq(generated[:rss]) | 
					
						
							|  |  |  |       expect(sourceforge.generate_input_values(sourceforge_urls[:rss_with_path])).to eq(generated[:rss]) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it "returns an empty hash for a non-Apache URL" do | 
					
						
							|  |  |  |       expect(sourceforge.generate_input_values(non_sourceforge_url)).to eq({}) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2020-08-08 07:16:06 +05:30
										 |  |  | end |