module TestSession

Constants

DEFAULT_USER
TEST_PNG_DATA

Public Instance Methods

assert_attr(e, s, res=@res)
Alias for: ok_attr
assert_equal_or_match(e, s) click to toggle source
assert module
# File vendor/qwik/lib/qwik/test-module-session.rb, line 228
def assert_equal_or_match(e, s)
  return assert_match(e, s) if e.is_a? Regexp
  return assert_equal(e, s)
end
assert_path(e, w, user=DEFAULT_USER, path="//div[@class='section']") { |req| ... } click to toggle source
assert xpath module
# File vendor/qwik/lib/qwik/test-module-session.rb, line 199
def assert_path(e, w, user=DEFAULT_USER, path="//div[@class='section']", &b)
  t_add_user if user

  page = @site['1']
  page = @site.create('1') if page.nil?
  page.store(w)
  res = session('/test/1.html') {|req|
    yield(req) if block_given?
    t_setup_user(@memory, req, user)
  }
  div = res.body.get_path(path)

  if e.is_a? Array
    return assert_equal(e, div.inside.remove_comment.get_single)
  end
  return assert_equal_or_match(e, div.inside.rb_format_xml(-1, -1).chomp)
end
assert_rattr(e, s, res=@res)
Alias for: ok_attr
assert_text(e, tag, res=@res) click to toggle source
# File vendor/qwik/lib/qwik/test-module-session.rb, line 251
def assert_text(e, tag, res=@res)
  elem = res.body.get_tag(tag)
  return assert_equal(e, nil) if elem.nil?
  return assert_equal_or_match(e, elem.text)
end
ok_attr(e, s, res=@res) click to toggle source
# File vendor/qwik/lib/qwik/test-module-session.rb, line 257
def ok_attr(e, s, res=@res)
  elem = (/\A\/\// =~ s) ? res.body.get_path(s) : res.body.get_tag(s)
  return assert_equal(e, nil) if elem.nil?
  return assert_equal(e, elem.attr)
end
Also aliased as: assert_attr, assert_rattr
ok_in(e, path, res=@res) click to toggle source
# File vendor/qwik/lib/qwik/test-module-session.rb, line 239
def ok_in(e, path, res=@res)
  elem = res.body.get_path(path)
  return assert_equal(e, nil) if elem.nil?
  return assert_equal(e, elem.inside.get_single)
end
ok_title(e, res=@res) click to toggle source
# File vendor/qwik/lib/qwik/test-module-session.rb, line 245
def ok_title(e, res=@res)
  elem = res.body.get_path('//title')
  return assert_equal(e, nil) if elem.nil?
  return assert_equal(e, elem.inside.get_single[0])
end
ok_wi(e, w, &b) click to toggle source
# File vendor/qwik/lib/qwik/test-module-session.rb, line 217
def ok_wi(e, w, &b)
  return assert_path(e, w, DEFAULT_USER, "//div[@class='section']", &b)
end
ok_xp(e, path, res=@res) click to toggle source
# File vendor/qwik/lib/qwik/test-module-session.rb, line 233
def ok_xp(e, path, res=@res)
  elem = res.body.get_path(path)
  return assert_equal(e, nil) if elem.nil?
  return assert_equal(e, elem.remove_comment)
end
pw(xpath=nil, res=@res) click to toggle source
show

Get element by XPath and show it in pretty print mode.

# File vendor/qwik/lib/qwik/test-module-session.rb, line 223
def pw(xpath=nil, res=@res)
  pp res.body.get_path(xpath)
end
session(path = '/test/') { |req| ... } click to toggle source
session
# File vendor/qwik/lib/qwik/test-module-session.rb, line 87
def session(path = '/test/')
  # setup_req
  req = Qwik::Request.new(@config)

  # setup user
  t_setup_user(@memory, req, DEFAULT_USER)

  # parse_host
  req.instance_eval {
    @fromhost = 'example.com'
  }

  if /\APOST / =~ path
    req.instance_eval {
      @request_method = 'POST'
    }
    path.sub!(/\APOST /, "")
  end

  if path.include?("?")
    path, query_str = path.split("?", 2)
    query = WEBrick::HTTPUtils.parse_query(query_str)
    req.query.clear
    req.query.update(query)
  end

  req.parse_path(path)
  req.accept_language = ['en']
  req.instance_eval {
    @fromhost = 'localhost'
  }

  # setup_res
  res = Qwik::Response.new(@config)
  res.make_mimetypes(WEBrick::HTTPUtils::DefaultMimeTypes)

  # setup_action
  @action = Qwik::Action.new
  @action.init(@config, @memory, req, res)
  site = @site
  @action.instance_eval {
    @site = site;
  }

  # Setup request by block.
  yield(req) if block_given?

  action = Qwik::Action.new
  action.init(@config, @memory, req, res)
  action.run

  dummy_str = res.setback_body(res.body)

  @res = res
  # Since @res is not thread safe, return res instead of @res.
  return res
end
setup() click to toggle source
setup
# File vendor/qwik/lib/qwik/test-module-session.rb, line 25
def setup
  web_setup
end
t_add_user(user = DEFAULT_USER) click to toggle source
# File vendor/qwik/lib/qwik/test-module-session.rb, line 157
def t_add_user(user = DEFAULT_USER)
  @site.member.add(user) unless @site.member.exist?(user)
end
t_make_content(filename, data) click to toggle source
# File vendor/qwik/lib/qwik/test-module-session.rb, line 178
def t_make_content(filename, data)
  content = WEBrick::HTTPUtils::FormData.new(data)
  content.filename = filename
  return content
end
t_site_open() click to toggle source
test common
# File vendor/qwik/lib/qwik/test-module-session.rb, line 152
def t_site_open
  page = @site['_SiteConfig']
  page.put_with_time(':open:true', 0)
end
t_with_path() { || ... } click to toggle source
# File vendor/qwik/lib/qwik/test-module-session.rb, line 184
def t_with_path
  org_public_url = @config[:public_url]
  @config[:public_url] = "http://www.example.org/qwik/"
  yield
  @config[:public_url] = org_public_url
end
t_with_site(sitename) { || ... } click to toggle source
# File vendor/qwik/lib/qwik/test-module-session.rb, line 171
def t_with_site(sitename)
  dir = ("#{sitename}/").path
  dir.setup
  yield
  dir.teardown
end
t_with_siteurl(url='http://example.org/q/') { || ... } click to toggle source
# File vendor/qwik/lib/qwik/test-module-session.rb, line 191
def t_with_siteurl(url='http://example.org/q/')
  siteconfig = @site['_SiteConfig']
  siteconfig.store ":siteurl:#{url}\n"
  yield
  siteconfig.store ""
end
t_without_testmode() { || ... } click to toggle source
# File vendor/qwik/lib/qwik/test-module-session.rb, line 161
def t_without_testmode
  org_test  = @config.test
  org_debug = @config.debug
  @config[:test]  = false
  @config[:debug] = false
  yield
  @config[:test]  = org_test
  @config[:debug] = org_debug
end
teardown() click to toggle source
teardown
# File vendor/qwik/lib/qwik/test-module-session.rb, line 75
def teardown
  web_teardown
end
web_setup() click to toggle source
# File vendor/qwik/lib/qwik/test-module-session.rb, line 29
def web_setup
  # setup config
  if ! defined?($test_config)
    config = Qwik::Config.new
    $test_org_sites_dir = config[:sites_dir].dup
    config.update(Qwik::Config::DebugConfig)
    config.update(Qwik::Config::TestConfig)
    $test_config = config
  end
  @config = $test_config
  @org_sites_dir = $test_org_sites_dir

  @config.sites_dir.path.check_directory
  @config.grave_dir.path.check_directory
  @config.cache_dir.path.check_directory
  @config.etc_dir.path.check_directory
  @config.log_dir.path.check_directory

  # setup memory
  if ! defined?($test_memory)
    memory = Qwik::ServerMemory.new(@config)
    logfile = '.test/testlog.txt'
    loglevel = WEBrick::Log::INFO
    logger = WEBrick::Log::new(logfile, loglevel)
    memory[:logger] = logger

    burylogfile = '.test/testburylog.txt'
    log = ::Logger.new(burylogfile)
    log.level = ::Logger::INFO
    memory[:bury_log] = log

    $test_memory = memory
  end
  @memory = $test_memory

  # setup dir
  @wwwdir = @config.sites_dir.path + 'www'
  @wwwdir.setup
  @dir = @config.sites_dir.path + 'test'
  @dir.setup

  # setup site
  @site = @memory.farm.get_site('test')
end
web_teardown() click to toggle source
# File vendor/qwik/lib/qwik/test-module-session.rb, line 79
def web_teardown
  @site.erase_all if defined?(@site) && @site
  @wwwdir.teardown if @wwwdir
  #assert_equal false, (@dir+"test").exist?
  @dir.teardown if @dir
end

Private Instance Methods

t_setup_user(memory, req, user) click to toggle source
# File vendor/qwik/lib/qwik/test-module-session.rb, line 145
def t_setup_user(memory, req, user)
  req.cookies['user'] = user
  req.cookies['pass'] = memory.passgen.generate(user)
end