mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-10-06 00:02:08 -04:00
54 lines
1.4 KiB
Ruby
54 lines
1.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Requests
|
|
module Plugins
|
|
module PushPromise
|
|
def test_plugin_no_push_promise
|
|
html, css = HTTPX.get(push_html_uri, push_css_uri, max_concurrent_requests: 1, http2_settings: { settings_enable_push: 1 })
|
|
verify_status(html, 200)
|
|
verify_status(css, 200)
|
|
verify_no_header(css.headers, "x-http2-push")
|
|
html.close
|
|
css.close
|
|
end
|
|
|
|
def test_plugin_push_promise_get
|
|
session = HTTPX.plugin(:push_promise)
|
|
html, css = session.get(push_html_uri, push_css_uri)
|
|
verify_status(html, 200)
|
|
verify_status(css, 200)
|
|
verify_header(css.headers, "x-http2-push", "1")
|
|
assert css.pushed?
|
|
html.close
|
|
css.close
|
|
end
|
|
|
|
def test_plugin_push_promise_concurrent
|
|
session = HTTPX.plugin(:push_promise)
|
|
.with(max_concurrent_requests: 100)
|
|
html, css = session.get(push_html_uri, push_css_uri)
|
|
verify_status(html, 200)
|
|
verify_status(css, 200)
|
|
verify_no_header(css.headers, "x-http2-push")
|
|
assert !css.pushed?
|
|
html.close
|
|
css.close
|
|
end
|
|
|
|
private
|
|
|
|
def push_origin
|
|
"https://nghttp2.org"
|
|
end
|
|
|
|
def push_html_uri
|
|
"#{push_origin}/"
|
|
end
|
|
|
|
def push_css_uri
|
|
"#{push_origin}/stylesheets/screen.css"
|
|
end
|
|
end
|
|
end
|
|
end
|