module PageObjectExtensions
  module Accessors
    # page_url_value is defined through page_url, so need to monkeypatch both
    def page_url(url)
      super(url)

      alias_method :old_page_url_value, :page_url_value
      # define_method is used in the original framework itself
      # rubocop:disable Custom/AvoidReflection
      define_method("page_url_value") do
        uri = Addressable::URI.heuristic_parse(old_page_url_value)
        InjectPageURLs.inject_page_urls(uri, self.class)
      end
      # rubocop:enable Custom/AvoidReflection
    end
  end
end
