class TestActRing

Public Instance Methods

ok_guest(e, w) click to toggle source
# File vendor/qwik/lib/qwik/act-ring.rb, line 810
def ok_guest(e, w)
  user = 'gu@e.com'
  assert_path(e, w, user, "//div[@class='section']")
end
ok_ui(e, mail, type) click to toggle source
user
# File vendor/qwik/lib/qwik/act-ring.rb, line 971
def ok_ui(e, mail, type)
  ok_eq(e, @action.plg_ring_user(mail, type))
end
test_act_ring_new() click to toggle source
new
# File vendor/qwik/lib/qwik/act-ring.rb, line 952
 def test_act_ring_new
   #t_add_user       # before login

   res = session('/test/.ring_new') {|req|
     req.cookies.clear      # before login
   }
   ok_title 'No id nor mail'

   res = session("/test/.ring_new?id=d@1990.sfc.ne.jp&mail=d@g.jp")
   ok_title 'NEW_CREATED'

   invite_member_page = @site['_'+Qwik::Action::RING_INVITE_MEMBER]
   ok_eq(",d@1990.sfc.ne.jp,,info@ring.sfc.ne.jp,NEW_FROM_SFCNEJP,0\n", invite_member_page.load)

   member_page = @site['_SiteMember']
   ok_eq(",d@1990.sfc.ne.jp,info@ring.sfc.ne.jp\n", member_page.load)
end
test_catalog() click to toggle source
catalog
# File vendor/qwik/lib/qwik/act-ring.rb, line 636
def test_catalog
  res = session
  eq "テスト", @action._r(:TEST)
end
test_ext_ring_invite() click to toggle source
# File vendor/qwik/lib/qwik/act-ring.rb, line 655
    def test_ext_ring_invite
      t_add_user

      template_page = @site.create('_'+Qwik::Action::RING_INVITE_MAIL_TEMPLATE)
      template_page.store("
\#{guest_mail}
\#{message}
\#{host_name}
\#{host_mail}
")

      page = @site.create_new
      page.store('')

      res = session('/test/1.ring_invite')
      ok_xp([:div, {:class=>'section'},
              [[:h3, "INVITE_NOSEND"],
                [:p, "もう一度入力を確認してください。"],
                [:p, [:a, {:href=>'1.html'}, 'Go back']]]],
            "//div[@class='section']")

      res = session("/test/1.ring_invite?guest_mail=g@e.com&message=hi")
      ok_xp([:div, {:class=>'section'},
              [[:h3, "INVITE_MAIL_IS_SENT"],
                [:dl, [:dt, "メッセージ"], [:dd, 'hi']],
                [:p, "どうもありがとうございました。"],
                [:p, [:a, {:href=>'1.html'}, 'Go back']]]],
            "//div[@class='section']")

      eq '', page.load

      invite_member_page = @site['_'+Qwik::Action::RING_INVITE_MEMBER]
      eq ",g@e.com,,user@e.com,hi,0\n", invite_member_page.load

      member_page = @site['_SiteMember']
      eq ",user@e.com,
,g@e.com,user@e.com
", member_page.load
    end
test_ext_ring_make() click to toggle source
# File vendor/qwik/lib/qwik/act-ring.rb, line 783
def test_ext_ring_make
  t_add_user

  ring_member_page = @site.create('_'+Qwik::Action::RING_MEMBER)
  template_page = @site.create('_'+Qwik::Action::RING_PAGE_TEMPLATE)
  template_page.store("\#{username}")

  page = @site.create_new

  res = session('/test/1.ring_make')
  ok_xp([:div, {:class=>'section'},
          [[:h3, "MAKER_NOT_REGISTERD"],
            [:p, "もう一度入力を確認してください。"],
            [:p, [:a, {:href=>'1.html'}, 'Go back']]]],
        "//div[@class='section']")

  res = session("/test/1.ring_make?username=u&realname=r&faculty=f&year=1990")
  ok_xp([:div, {:class=>'section'},
          [[:h3, "MAKER_REGISTERD"],
            [:dl, [:dt, "ユーザ名"], [:dd, 'u'], [:dt, "本名"], [:dd, 'r']],
            [:p, [:a, {:href=>'2.html'}, "MAKER_THE_PAGE"], "MAKER_SEE"]]],
        "//div[@class='section']")
  page = @site['2']
  ok_eq('u', page.load)
  ok_eq(",user@e.com,u,r,f,1990,2,0\n", ring_member_page.load)
end
test_ext_ring_msg() click to toggle source
# File vendor/qwik/lib/qwik/act-ring.rb, line 919
def test_ext_ring_msg
  t_add_user

  page = @site.create_new
  page.store('')

  # Try to write, but it cause error.
  res = session('/test/1.ring_msg')
  ok_in(["MSG_INPUT_MESSAGE"], '//h3')

  # Try to write, but it cause error.
  res = session("/test/1.ring_msg?message=")
  ok_in(["MSG_INPUT_MESSAGE"], '//h3')

  # Send a message.
  res = session("/test/1.ring_msg?message=Hi")
  ok_in(["MSG_MESSAGE_IS_ADDED"], '//h3')

  # Check the content.
  ok_eq(":{{ring_ul(user@e.com)}} ({{ring_date(0)}}):Hi\n", page.load)
end
test_make_page() click to toggle source
# File vendor/qwik/lib/qwik/act-ring.rb, line 815
    def test_make_page
      t_add_user

      page = @site['_SiteMember']
      page.store(",user@e.com,\n,gu@e.com,user@e.com\n")

      page = @site.create('r')
      page.store("{{ring_make_form}}")

      # Login as guest.
      res = session('/test/r.html') {|req|
        req.cookies.clear              # login as the guest
        pass = @memory.passgen.generate('gu@e.com')
        req.cookies.update({'user'=>'gu@e.com', 'pass'=>pass})
      }
      assert_rattr({:action=>'r.ring_make', :method=>'POST'}, '//form')

      # Make my page.
      res = session("/test/1.ring_make?page=RingMakePage&username=ゲスト&realname=山田太郎&faculty=総合政策&year=1990") {|req|
        req.cookies.clear              # login as the guest
        pass = @memory.passgen.generate('gu@e.com')
        req.cookies.update({'user'=>'gu@e.com', 'pass'=>pass})
      }
      ok_in(["MAKER_REGISTERD"], "//div[@class='section']//h3")
      ok_in(["ゲスト"], "//div[@class='section']//dd[1]")
      ok_in(["山田太郎"], "//div[@class='section']//dd[2]")
      ok_in(["MAKER_THE_PAGE"], "//div[@class='section']//a")
      ok_xp([:a, {:href=>'1.html'}, "MAKER_THE_PAGE"], "//div[@class='section']//a")
      ok_eq("* ゲスト
* profile
{{ring_personal_info}}
* message
{{ring_message_form}}
", @site["1"].load)

      # See my page.
      res = session('/test/1.html') {|req|
        req.cookies.clear              # login as the guest
        pass = @memory.passgen.generate('gu@e.com')
        req.cookies.update({'user'=>'gu@e.com', 'pass'=>pass})
      }
      assert_text("ゲスト", 'h1')
      assert_text('profile', 'h2')
      assert_rattr({:method=>'POST', :action=>'1.ring_msg'}, '//form')
      assert_match(/,gu@e.com,ゲスト,山田太郎,総合政策,1990,1,/,
                   @site['_RingMember'].load)
      ok_eq('gu@e.com', @action.plg_ring_user('gu@e.com', 'mail'))
      # @action.user = 'gu@e.com'
      #ok_eq('gu@e.com', @action.plg_ring_show('mail'))
      #ok_eq('gu@e.com', @action.plg_ring_show('mail'))
      ok_guest('gu@e.com', "{{ring_show(mail)}}")
      ok_guest("ゲスト",     "{{ring_show(user)}}")
      ok_guest("山田太郎",   "{{ring_show(name)}}")
      ok_guest("総合政策",   "{{ring_show(faculty)}}")
      ok_guest('1990',       "{{ring_show(year)}}")
      ok_guest('1',          "{{ring_show(pagename)}}")
      ok_guest(%r|\d+|,      "{{ring_show(time)}}")

      # See my page again.
      res = session('/test/1.html') # login as test again.

      # @action.user = 'user@e.com'
      # @action.pagename = '1'
=begin
      ok_wi('gu@e.com', "{{ring_user(guest@example.com, mail)}}")
      ok_wi('gu@e.com', "{{ring_see(mail)}}")
      ok_wi("ゲスト",     "{{ring_see(user)}}")
      ok_wi("山田太郎",   "{{ring_see(name)}}")
      ok_wi("総合政策",   "{{ring_see(faculty)}}")
      ok_wi('1990',       "{{ring_see(year)}}")
      ok_wi('1',          "{{ring_see(pagename)}}")
      ok_wi(%r|\d+|,      "{{ring_see(time)}}")
      ok_wi("<dl><dt>名前、E-mail</dt><dd>山田太郎 &lt;gu@e.com&gt;</dd><dt>入学</dt><dd>1990年 総合政策</dd></dl>", "{{ring_personal_info}}")
      ok_eq("* ゲスト\n{{ring_personal_info}}\n\n* profile\n# ここにprofileを記述してください。\n:研究会:\n:職業:\n:最近のマイブーム:\n\n* SEND MESSAGE\n{{ring_message_form}}\n\n* MESSAGE\n", @site['1'].load)
      ok_wi(/山田太郎/, @site['1'].load)
=end

      page = @site['1']
      ok_eq("{{ring_show(time)}}", page.load)

      page = @site['_RingMember']
      ok_eq(",gu@e.com,ゲスト,山田太郎,総合政策,1990,1,0\n", page.load)

      page = @site['_SiteMember']
      ok_eq(",user@e.com,\n,gu@e.com,user@e.com\n", page.load)
    end
test_plg_ring_invite_form() click to toggle source
invite
# File vendor/qwik/lib/qwik/act-ring.rb, line 642
def test_plg_ring_invite_form
  t_add_user

  page = @site.create_new
  page.store("{{ring_invite_form}}")
  res = session('/test/1.html')
  assert_rattr({:action=>'1.ring_invite', :method=>'POST'},
               "//div[@class='section']/form")
  ok_xp([:textarea, {:cols=>'40', :name=>'guest_mail', :rows=>'4'},
                 'guest@example.com'],
               "//div[@class='section']/textarea")
end
test_plg_ring_invite_list() click to toggle source
# File vendor/qwik/lib/qwik/act-ring.rb, line 695
   def test_plg_ring_invite_list
     t_add_user

     invite_member_page = @site.create('_'+Qwik::Action::RING_INVITE_MEMBER)
     invite_member_page.store(",g@e.com,,user@e.com,hi,0\n")

     page = @site.create_new
     page.store("{{ring_invite_list}}")
     res = session('/test/1.html')
     ok_xp([:dl,
[:dt, [:span, {:class=>'ring_ul'}, 'user@e.com'], "→ (g@e.com) 1970-01-01"],
[:dd, 'hi']],
                  "//div[@class='ring_invite_list']/dl")
   end
test_plg_ring_make_form() click to toggle source
maker
# File vendor/qwik/lib/qwik/act-ring.rb, line 773
def test_plg_ring_make_form
  t_add_user

  page = @site.create_new
  page.store("{{ring_make_form}}")
  res = session('/test/1.html')
  assert_rattr({:action=>'1.ring_make', :method=>'POST'},
               "//div[@class='section']/form")
end
test_plg_ring_message_form() click to toggle source
msg
# File vendor/qwik/lib/qwik/act-ring.rb, line 903
def test_plg_ring_message_form
  t_add_user

  page = @site.create_new
  page.store("{{ring_message_form}}")

  # See the message form.
  res = session('/test/1.html')
  div = res.body.get_path("//div[@class='form']/form")
  ok_eq({:method=>'POST', :action=>'1.ring_msg'}, div.attr)
  ok_eq([:tr, [:th, "●ユーザ名"], [:td, 'user@e.com']],
        div.get_path('/table/tr'))
  ok_xp([:input, {:value=>" POST! ", :type=>'submit', :class=>'submit'}],
        "//div[@class='form']/input")
end
test_ring_invite() click to toggle source
# File vendor/qwik/lib/qwik/act-ring.rb, line 710
def test_ring_invite
  t_add_user

  page = @site.create('_RingMember')
  page.store(',user@e.com,Test User,Alan Smithy,ei,1990,1,0')

  page = @site.create_new
  page.store("{{ring_invite_form}}")

  # See invite page.
  res = session('/test/1.html')
  assert_rattr({:action=>'1.ring_invite', :method=>'POST'}, '//form')
  ok_in(['user@e.com'], '//table/tr/td')
  ok_in(['guest@example.com'], "//form/table/tr[4]/td/textarea")

  # Try to invite, but it cause error.
  res = session("/test/1.ring_invite?guest_mail=invalid@mailaddress")
  ok_in(["INVITE_NOSEND"], '//h3')

  # Try to invite again.
  res = session("/test/1.ring_invite?guest_mail=gu@e.com&message=invite")
  ok_in(["INVITE_MAIL_IS_SENT"], '//h3')
  eq ",gu@e.com,,user@e.com,invite,0\n", @site['_RingInvitedMember'].load
  eq "Alan Smithy <user@e.com>", $smtp_sendmail[2]
  eq 'gu@e.com', $smtp_sendmail[3]
  assert_match(/^From/, $smtp_sendmail[4])
  url = "http://ring.sfc.keio.ac.jp/.getpass?mail=gu@e.com"
  assert_match(Regexp.new(Regexp.escape(url)), $smtp_sendmail[4])

  # Try to invite another person.
  res = session("/test/1.ring_invite?guest_mail=fe@e.com&message=youtoo")
  ok_in(["INVITE_MAIL_IS_SENT"], '//h3')
  eq ",gu@e.com,,user@e.com,invite,0\n,fe@e.com,,user@e.com,youtoo,0\n",
    @site['_RingInvitedMember'].load
  eq "Alan Smithy <user@e.com>", $smtp_sendmail[2]
  eq 'fe@e.com', $smtp_sendmail[3]
  assert_match(/^From/, $smtp_sendmail[4])
  url = "http://ring.sfc.keio.ac.jp/.getpass?mail=fe@e.com"
  assert_match(Regexp.new(Regexp.escape(url)), $smtp_sendmail[4])

  # See invited member list.
  page = @site.create_new
  page.store("{{ring_invite_list}}")

  res = session('/test/2.html')
  ok_in([:dl,
          [:dt, [:span, {:class=>'ring_ul'},
              [:a, {:href=>'1.html'}, 'Test User']],
            "→ (gu@e.com) 1970-01-01"],
          [:dd, 'invite'],
          [:dt, [:span, {:class=>'ring_ul'},
              [:a, {:href=>'1.html'}, 'Test User']],
            "→ (fe@e.com) 1970-01-01"],
          [:dd, 'youtoo']],
        "//div[@class='ring_invite_list']")

  page = @site['_RingMember']
  eq ',user@e.com,Test User,Alan Smithy,ei,1990,1,0', page.load
  page = @site['_SiteMember']
  eq ",user@e.com,\n,gu@e.com,user@e.com\n,fe@e.com,user@e.com\n", page.load
end
test_ring_loginstatus() click to toggle source
# File vendor/qwik/lib/qwik/act-ring.rb, line 1063
def test_ring_loginstatus
  t_add_user
  res = session('/test/')   # You are logged in as user@e.com
  ok_in(['user@e.com'], "//div[@class='loginstatus']/em")
end
test_user() click to toggle source
# File vendor/qwik/lib/qwik/act-ring.rb, line 975
def test_user
  t_add_user

  res = session

  # test_get_userinfo
  ok_ui(nil, 'user@e.com', 'mail')  # No record.

  # Store user infomation.
  page = @site.create('_RingMember')
  page.store(',user@e.com,Test User,Alan Smithy,ei,1990,1,0')

  ok_ui('user@e.com',       'user@e.com', 'mail')
  ok_ui('Test User',        'user@e.com', 'user')
  ok_ui('Alan Smithy',      'user@e.com', 'name')
  ok_ui('ei',               'user@e.com', 'faculty')
  ok_ui('1990',             'user@e.com', 'year')
  ok_ui('1',                'user@e.com', 'pagename')
  ok_ui('0',                'user@e.com', 'time')

  # test_plg_ring_user
  ok_wi(['user@e.com'], "{{ring_user(user@e.com,mail)}}")
  ok_wi(['Test User'], "{{ring_user(user@e.com,user)}}")
  ok_wi(['Alan Smithy'], "{{ring_user(user@e.com,name)}}")
  ok_wi(['ei'],     "{{ring_user(user@e.com,faculty)}}")
  ok_wi(['1990'],   "{{ring_user(user@e.com,year)}}")
  ok_wi(['1'],      "{{ring_user(user@e.com,pagename)}}")
  ok_wi(['0'],      "{{ring_user(user@e.com,time)}}")

  # test plg_ring_show
  ok_wi(['user@e.com'], "{{ring_show(mail)}}")
  ok_wi(['Test User'], "{{ring_show(user)}}")
  ok_wi(['Alan Smithy'], "{{ring_show(name)}}")
  ok_wi(['ei'],     "{{ring_show(faculty)}}")
  ok_wi(['1990'],   "{{ring_show(year)}}")
  ok_wi(['1'],      "{{ring_show(pagename)}}")
  ok_wi(['0'],      "{{ring_show(time)}}")

  # test plg_ring_link
  ok_wi([:a, {:href=>'1.html'}, 'Test User'],
        "{{ring_link(user@e.com)}}")

  # test plg_ring_get_user_from_pagename
  ok_wi(['user@e.com'],
        "{{ring_get_user_from_pagename(1)}}")

  # test plg_ring_see
  ok_wi(['user@e.com'], "{{ring_see(mail)}}")
  # same as ring_show in this page.

  # test plg_ring_personal_info
  ok_wi([:dl,
          [:dt, "名前 E-mail"],
          [:dd, "Alan Smithy", " <", "user@e.com", ">"],
          [:dt, "入学"],
          [:dd, '1990', "年 ", 'ei']],
        "{{ring_personal_info}}")
end