summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2019-10-18 12:34:59 -0700
committerJeremy Evans <code@jeremyevans.net>2019-10-21 14:16:45 -0700
commit73c1a2b4e0f86f773a440d4bfa178d5cd1333127 (patch)
treec35037ab1c619f54eb6caf09d63399257ac300ad /test
parent0910ae5575786d57783eafd4d03ebc0d077cd2ed (diff)
downloadpsych-73c1a2b4e0f86f773a440d4bfa178d5cd1333127.zip
Remove taint support
Ruby 2.7 deprecates taint and it no longer has an effect. The lack of taint support should not cause a problem in previous Ruby versions. I'm not sure if the untaint calls in deduplicate are still needed after the removal of tainting in the parser. If they are not needed, they should be removed.
Diffstat (limited to 'test')
-rw-r--r--test/psych/test_tainted.rb131
1 files changed, 0 insertions, 131 deletions
diff --git a/test/psych/test_tainted.rb b/test/psych/test_tainted.rb
deleted file mode 100644
index dcf150b..0000000
--- a/test/psych/test_tainted.rb
+++ /dev/null
@@ -1,131 +0,0 @@
-# frozen_string_literal: true
-require_relative 'helper'
-
-module Psych
- class TestStringTainted < TestCase
- class Tainted < Handler
- attr_reader :tc
-
- def initialize tc
- @tc = tc
- end
-
- def start_document version, tags, implicit
- tags.flatten.each do |tag|
- assert_taintedness tag
- end
- end
-
- def alias name
- assert_taintedness name
- end
-
- def scalar value, anchor, tag, plain, quoted, style
- assert_taintedness value
- assert_taintedness tag if tag
- assert_taintedness anchor if anchor
- end
-
- def start_sequence anchor, tag, implicit, style
- assert_taintedness tag if tag
- assert_taintedness anchor if anchor
- end
-
- def start_mapping anchor, tag, implicit, style
- assert_taintedness tag if tag
- assert_taintedness anchor if anchor
- end
-
- def assert_taintedness thing, message = "'#{thing}' should be tainted"
- tc.assert thing.tainted?, message
- end
- end
-
- class Untainted < Tainted
- def assert_taintedness thing, message = "'#{thing}' should not be tainted"
- tc.assert !thing.tainted?, message
- end
- end
-
-
- def setup
- handler = Tainted.new self
- @parser = Psych::Parser.new handler
- end
-
- def test_tags_are_tainted
- assert_taintedness "%TAG !yaml! tag:yaml.org,2002:\n---\n!yaml!str \"foo\""
- end
-
- def test_alias
- assert_taintedness "--- &ponies\n- foo\n- *ponies"
- end
-
- def test_scalar
- assert_taintedness "--- ponies"
- end
-
- def test_anchor
- assert_taintedness "--- &hi ponies"
- end
-
- def test_scalar_tag
- assert_taintedness "--- !str ponies"
- end
-
- def test_seq_start_tag
- assert_taintedness "--- !!seq [ a ]"
- end
-
- def test_seq_start_anchor
- assert_taintedness "--- &zomg [ a ]"
- end
-
- def test_seq_mapping_tag
- assert_taintedness "--- !!map { a: b }"
- end
-
- def test_seq_mapping_anchor
- assert_taintedness "--- &himom { a: b }"
- end
-
- def assert_taintedness string
- @parser.parse string.dup.taint
- end
- end
-
- class TestStringUntainted < TestStringTainted
- def setup
- handler = Untainted.new self
- @parser = Psych::Parser.new handler
- end
-
- def assert_taintedness string
- @parser.parse string
- end
- end
-
- class TestStringIOUntainted < TestStringTainted
- def setup
- handler = Untainted.new self
- @parser = Psych::Parser.new handler
- end
-
- def assert_taintedness string
- @parser.parse StringIO.new(string)
- end
- end
-
- class TestIOTainted < TestStringTainted
- def assert_taintedness string
- Tempfile.create(['something', 'yml']) {|t|
- t.binmode
- t.write string
- t.close
- File.open(t.path, 'r:bom|utf-8') { |f|
- @parser.parse f
- }
- }
- end
- end
-end