Current section
Files
Jump to
Current section
Files
test/test_helper.exs
ExUnit.start()
defmodule AppMaker do
defmacro __using__(options) do
quote do
use Plug.Router
alias Plug.Conn.Status
plug PlugSecureHeaders, unquote(options)
plug :match
plug :dispatch
end
end
end
defmodule TestApp do
@secure_config [
warn_only: false,
merge: false,
report_only: false,
use_secure_config: true,
config: [
content_security_policy: "default-src 'none'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self';",
http_public_key_pins: "",
strict_transport_security: "max-age=631138519",
x_content_type_options: "nosniff",
x_download_options: "noopen",
x_frame_options: "sameorigin",
x_permitted_cross_domain_policies: "none",
x_xss_protection: "1; mode=block"
]
]
use AppMaker, plug_secure_headers: @secure_config
get "/" do
send_resp(conn, Status.code(:ok), "PlugSecureHeadersTest")
end
end
defmodule CustomTestApp do
use AppMaker, plug_secure_headers: [
warn_only: false,
merge: false,
report_only: false,
use_secure_config: true,
config: [
content_security_policy: "default-src 'none'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self';"]
]
get "/" do
send_resp(conn, Status.code(:ok), "PlugSecureHeadersTest")
end
end
defmodule CustomTestAppMergeConfigFalse do
use AppMaker, plug_secure_headers: [
warn_only: false,
merge: false,
report_only: false,
use_secure_config: true,
config: [
content_security_policy: "default-src 'none';"]
]
get "/" do
send_resp(conn, Status.code(:ok), "PlugSecureHeadersTest")
end
end
defmodule CustomTestAppMergeConfigTrue do
use AppMaker, plug_secure_headers: [
warn_only: false,
merge: true,
report_only: false,
use_secure_config: true,
config: [
content_security_policy: "default-src 'none';"]
]
get "/" do
send_resp(conn, Status.code(:ok), "PlugSecureHeadersTest")
end
end