Method: JavascriptFeatures::TestCase.uses_html

Defined in:
lib/javascript_features/test_case.rb

.uses_html(&block) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/javascript_features/test_case.rb', line 44

def uses_html(&block)
  define_method(:setup) do
    self.class.feature_names.each{ |f| self.class.use_javascript_for f }
    @html = yield.strip

    server_config = {:BindAddress => '0.0.0.0', :Port => 8076, :AccessLog => [], :Logger => WEBrick::Log::new('/dev/null', 7)}
    @server = ::WEBrick::HTTPServer.new(server_config)
    pages = self.class.server_pages.merge(
              '/index.html' => @html,
              '/jquery.js' => File.read(File.expand_path('../../../assets/jquery.js', __FILE__))
            )
    @server.mount('/', JavascriptFeatures::TestCase::Servlet, pages)
    Thread.new{ @server.start }

    @page = Harmony::Page.fetch("http://#{server_config[:BindAddress]}:#{server_config[:Port]}/index.html")
    Harmony::Page::Window::BASE_RUNTIME.wait
  end

  define_method(:teardown) do
    @server.shutdown
  end
end