From fcbf63e62c627deae76c1b8cb8c0876c536ed811 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Mon, 16 Mar 2020 18:49:26 +0900 Subject: Fresh start --- jni/ruby/test/rexml/test_validation_rng.rb | 792 +++++++++++++++++++++++++++++ 1 file changed, 792 insertions(+) create mode 100644 jni/ruby/test/rexml/test_validation_rng.rb (limited to 'jni/ruby/test/rexml/test_validation_rng.rb') diff --git a/jni/ruby/test/rexml/test_validation_rng.rb b/jni/ruby/test/rexml/test_validation_rng.rb new file mode 100644 index 0000000..8989fe2 --- /dev/null +++ b/jni/ruby/test/rexml/test_validation_rng.rb @@ -0,0 +1,792 @@ +require "test/unit/testcase" + +require "rexml/document" +require "rexml/validation/relaxng" + +module REXMLTests + class RNGValidation < Test::Unit::TestCase + include REXML + + def test_validate + rng = %q{ + + + + + + + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + no_error( validator, %q{} ) + error( validator, %q{} ) + end + + + def test_sequence + rng = %q{ + + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + error( validator, %q{} ) + error( validator, %q{} ) + no_error( validator, %q{} ) + end + + + def test_choice + rng = %q{ + + + + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + end + + def test_optional + rng = %q{ + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + no_error( validator, %q{} ) + no_error( validator, %q{} ) + error( validator, %q{} ) + error( validator, %q{} ) + end + + def test_zero_or_more + rng = %q{ + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + error( validator, %q{} ) + error( validator, %q{} ) + + rng = %q{ + + + + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + no_error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + error( validator, %q{} ) + end + + def test_one_or_more + rng = %q{ + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + error( validator, %q{} ) + error( validator, %q{} ) + end + + def test_attribute + rng = %q{ + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + error( validator, %q{} ) + error( validator, %q{} ) + no_error( validator, %q{} ) + end + + def test_choice_attributes + rng = %q{ + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + error( validator, %q{} ) + no_error( validator, %q{}) + no_error( validator, %q{} ) + end + + def test_choice_attribute_element + rng = %q{ + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + error( validator, %q{} ) + no_error( validator, %q{}) + no_error( validator, %q{} ) + end + + def test_empty + rng = %q{ + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + error( validator, %q{Text} ) + no_error( validator, %q{}) + end + + def test_text_val + rng = %q{ + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + no_error( validator, %q{Text} ) + error( validator, %q{}) + end + + def test_choice_text + rng = %q{ + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{Text} ) + error( validator, %q{Text} ) + no_error( validator, %q{Text} ) + no_error( validator, %q{} ) + end + + def test_group + rng = %q{ + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + + rng = %q{ + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + error( validator, %q{} ) + error( validator, %q{} ) + no_error( validator, %q{} ) + end + + def test_value + # Values as text nodes + rng = %q{ + + + + VaLuE + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{X} ) + error( validator, %q{} ) + no_error( validator, %q{VaLuE} ) + + # Values as text nodes, via choice + rng = %q{ + + + + + Option 1 + Option 2 + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + error( validator, %q{XYZ} ) + no_error( validator, %q{Option 1} ) + no_error( validator, %q{Option 2} ) + + # Attribute values + rng = %q{ + + + + VaLuE + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + error( validator, %q{} ) + error( validator, %q{} ) + no_error( validator, %q{} ) + + # Attribute values via choice + rng = %q{ + + + + + Option 1 + Option 2 + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + end + + def test_interleave + rng = %q{ + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + error( validator, %q{} ) + end + + def test_mixed + rng = %q{ + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + no_error( validator, %q{Text} ) + no_error( validator, %q{Text} ) + end + + def test_ref_sequence + rng = %q{ + + + + + + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + no_error( validator, %q{} ) + error( validator, %q{} ) + end + + def test_ref_choice + rng = %q{ + + + + + + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + + rng = %q{ + + + + + + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + + rng = %q{ + + + + + + + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + end + + + def test_ref_zero_plus + rng = %q{ + + + + + + + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + + rng = %q{ + + + + + + + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + end + + + def test_ref_one_plus + rng = %q{ + + + + + + + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + + rng = %q{ + + + + + + + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + end + + def test_ref_interleave + rng = %q{ + + + + + + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + error( validator, %q{} ) + error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + + rng = %q{ + + + + + + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + error( validator, %q{} ) + error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + + rng = %q{ + + + + + + + + + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + error( validator, %q{} ) + error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + end + + def test_ref_recurse + rng = %q{ + + + + + + + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + error( validator, %q{} ) + no_error( validator, %q{} ) + no_error( validator, %q{} ) + end + + def test_ref_optional + rng = %q{ + + + + + + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + no_error( validator, %q{} ) + no_error( validator, %q{} ) + error( validator, %q{} ) + error( validator, %q{} ) + + rng = %q{ + + + + + + + + + + + + + + + + } + validator = REXML::Validation::RelaxNG.new( rng ) + + no_error( validator, %q{} ) + no_error( validator, %q{} ) + error( validator, %q{} ) + error( validator, %q{} ) + end + + + + def error( validator, source ) + parser = REXML::Parsers::TreeParser.new( source ) + parser.add_listener( validator.reset ) + assert_raise( REXML::Validation::ValidationException, + "Expected a validation error" ) { parser.parse } + end + + def no_error( validator, source ) + parser = REXML::Parsers::TreeParser.new( source ) + parser.add_listener( validator.reset ) + assert_nothing_raised { parser.parse } + end + end +end -- cgit v1.2.3