diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 597846c..d7b4cd4 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -30,6 +30,22 @@ jobs:
bundler-cache: true
- run: bundle exec rake
+ cruby-nokogiri-system-libraries:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: "3.1"
+ - name: Install nokogiri with system libraries
+ run: |
+ sudo apt install pkg-config libxml2-dev libxslt-dev
+ bundle config set force_ruby_platform true
+ bundle config build.nokogiri --enable-system-libraries
+ bundle install
+ bundle exec nokogiri -v
+ - run: bundle exec rake
+
jruby:
continue-on-error: true # nokogiri on jruby has different behavior
strategy:
diff --git a/test/sanitizer_test.rb b/test/sanitizer_test.rb
index 241564c..1de5a99 100644
--- a/test/sanitizer_test.rb
+++ b/test/sanitizer_test.rb
@@ -505,7 +505,13 @@ def test_uri_escaping_of_href_attr_in_a_tag_in_safe_list_sanitizer
text = safe_list_sanitize(html)
- assert_equal %{test}, text
+ acceptable_results = [
+ # nokogiri w/vendored+patched libxml2
+ %{test},
+ # nokogiri w/ system libxml2
+ %{test},
+ ]
+ assert_includes(acceptable_results, text)
end
def test_uri_escaping_of_src_attr_in_a_tag_in_safe_list_sanitizer
@@ -515,7 +521,13 @@ def test_uri_escaping_of_src_attr_in_a_tag_in_safe_list_sanitizer
text = safe_list_sanitize(html)
- assert_equal %{test}, text
+ acceptable_results = [
+ # nokogiri w/vendored+patched libxml2
+ %{test},
+ # nokogiri w/system libxml2
+ %{test},
+ ]
+ assert_includes(acceptable_results, text)
end
def test_uri_escaping_of_name_attr_in_a_tag_in_safe_list_sanitizer
@@ -525,7 +537,13 @@ def test_uri_escaping_of_name_attr_in_a_tag_in_safe_list_sanitizer
text = safe_list_sanitize(html)
- assert_equal %{test}, text
+ acceptable_results = [
+ # nokogiri w/vendored+patched libxml2
+ %{test},
+ # nokogiri w/system libxml2
+ %{test},
+ ]
+ assert_includes(acceptable_results, text)
end
def test_uri_escaping_of_name_action_in_a_tag_in_safe_list_sanitizer
@@ -535,7 +553,13 @@ def test_uri_escaping_of_name_action_in_a_tag_in_safe_list_sanitizer
text = safe_list_sanitize(html, attributes: ['action'])
- assert_equal %{test}, text
+ acceptable_results = [
+ # nokogiri w/vendored+patched libxml2
+ %{test},
+ # nokogiri w/system libxml2
+ %{test},
+ ]
+ assert_includes(acceptable_results, text)
end
def test_exclude_node_type_processing_instructions