Sha256: 1b293c0089708ed92b8ac5216d3c81bbeb88563e2005c13988269861b7f8bd31
Contents?: true
Size: 1.39 KB
Versions: 9
Compression:
Stored size: 1.39 KB
Contents
require "test_helper" require "public_suffix" # This test runs against the current PSL file and ensures # the definitions satisfies the test suite. class PslTest < Minitest::Test ROOT = File.expand_path("../../", __FILE__) # rubocop:disable Security/Eval def self.tests File.readlines(File.join(ROOT, "test/tests.txt")).map do |line| line = line.strip next if line.empty? next if line.start_with?("//") input, output = line.split(", ") # handle the case of eval("null"), it must be eval("nil") input = "nil" if input == "null" output = "nil" if output == "null" input = eval(input) output = eval(output) [input, output] end end # rubocop:enable Security/Eval def test_valid # Parse the PSL and run the tests data = File.read(PublicSuffix::List::DEFAULT_LIST_PATH) PublicSuffix::List.default = PublicSuffix::List.parse(data) failures = [] self.class.tests.each do |input, output| # Punycode domains are not supported ATM next if input =~ /xn\-\-/ domain = PublicSuffix.domain(input) rescue nil failures << [input, output, domain] if output != domain end message = "The following #{failures.size} tests fail:\n" failures.each { |i, o, d| message += "Expected %s to be %s, got %s\n" % [i.inspect, o.inspect, d.inspect] } assert_equal 0, failures.size, message end end
Version data entries
9 entries across 8 versions & 5 rubygems