Sha256: 3cf69d83d045769fc70eff52fe8eba3938a3f329bb92b1344a0a11e0eb1ff307

Contents?: true

Size: 1.94 KB

Versions: 10

Compression:

Stored size: 1.94 KB

Contents

module WatirSpec
  class Server
    class App
      def response(path, data = nil)
        case path
        when '/'
          respond(self.class.name)
        when '/post_to_me'
          respond("You posted the following content:\n#{data}")
        when '/plain_text'
          respond('This is text/plain', 'Content-Type' => 'text/plain')
        when %r{/set_cookie}
          respond("<html>C is for cookie, it's good enough for me</html>", 'Content-Type' => 'text/html', 'Set-Cookie' => 'monster=1')
        when css_file?
          respond(file_read(path), 'Content-Type' => 'text/css')
        when js_file?
          respond(file_read(path), 'Content-Type' => 'application/javascript')
        when png_file?
          respond(file_binread(path), 'Content-Type' => 'image/png')
        when gif_file?
          respond(file_read(path), 'Content-Type' => 'image/gif')
        when static_file?
          respond(file_read(path))
        else
          respond('')
        end
      end

      private

      def respond(body, headers = {}, status = '200 OK')
        [status, headers, body]
      end

      def css_file?
        proc { |path| static_file(path) && path.end_with?('.css') }
      end

      def js_file?
        proc { |path| static_file(path) && path.end_with?('.js') }
      end

      def png_file?
        proc { |path| static_file(path) && path.end_with?('.png') }
      end

      def gif_file?
        proc { |path| static_file(path) && path.end_with?('.gif') }
      end

      def static_file?
        proc { |path| static_file(path) }
      end

      def static_files
        WatirSpec.htmls.flat_map do |html|
          Dir["#{html}/**/*"]
        end
      end

      def static_file(path)
        static_files.find do |file|
          file.end_with?(path)
        end
      end

      def file_read(path)
        File.read(static_file(path))
      end

      def file_binread(path)
        File.binread(static_file(path))
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
watir-6.13.0 lib/watirspec/server/app.rb
watir-6.12.0 lib/watirspec/server/app.rb
watir-6.11.0 lib/watirspec/server/app.rb
watir-6.11.0.beta2 lib/watirspec/server/app.rb
watir-6.11.0.beta1 lib/watirspec/server/app.rb
watir-6.10.3 lib/watirspec/server/app.rb
watir-6.10.2 lib/watirspec/server/app.rb
watir-6.10.0 lib/watirspec/server/app.rb
watir-6.9.1 lib/watirspec/server/app.rb
watir-6.9.0 lib/watirspec/server/app.rb