diff options
Diffstat (limited to 'vendor/gems/ruby-openid-2.1.4/test/test_linkparse.rb')
-rw-r--r-- | vendor/gems/ruby-openid-2.1.4/test/test_linkparse.rb | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/vendor/gems/ruby-openid-2.1.4/test/test_linkparse.rb b/vendor/gems/ruby-openid-2.1.4/test/test_linkparse.rb deleted file mode 100644 index 6360d507e..000000000 --- a/vendor/gems/ruby-openid-2.1.4/test/test_linkparse.rb +++ /dev/null @@ -1,101 +0,0 @@ -require 'test/unit' -require 'testutil' -require 'openid/consumer/html_parse' - -class LinkParseTestCase < Test::Unit::TestCase - include OpenID::TestDataMixin - - def attr_cmp(expected, found) - e = expected.to_a.sort - f = found.to_a.sort - while (ep = e.shift) - ek, ev = ep - fk, fv = f.shift - ok = false - while ek[-1] == '*'[0] # optional entry detected - if fk == ek[0...-1] and fv==ev # optional entry found - ok = true - break - else # not found. okay, move on to next expected pair - ek, ev = e.shift - end - if ek.nil? - if fk == nil - ok = true - end - break - end - end - next if ok - next if fk == ek and fv == ev - return false - end - return f.empty? - end - - def test_attrcmp - good = [ - [{'foo' => 'bar'},{'foo' => 'bar'}], - [{'foo*' => 'bar'},{'foo' => 'bar'}], - [{'foo' => 'bar', 'bam*' => 'baz'},{'foo' => 'bar'}], - [{'foo' => 'bar', 'bam*' => 'baz', 'tak' => 'tal'}, - {'foo' => 'bar', 'tak' => 'tal'}], - ] - bad = [ - [{},{'foo' => 'bar'}], - [{'foo' => 'bar'}, {'bam' => 'baz'}], - [{'foo' => 'bar'}, {}], - [{'foo*' => 'bar'},{'foo*' => 'bar'}], - [{'foo' => 'bar', 'tak' => 'tal'}, {'foo' => 'bar'}] - ] - good.each{|c|assert(attr_cmp(c[0],c[1]),c.inspect)} - bad.each{|c|assert(!attr_cmp(c[0],c[1]),c.inspect)} - - end - - def test_linkparse - cases = read_data_file('linkparse.txt', false).split("\n\n\n") - - numtests = nil - testnum = 0 - cases.each {|c| - headers, html = c.split("\n\n",2) - expected_links = [] - name = "" - testnum += 1 - headers.split("\n").each{|h| - k,v = h.split(":",2) - v = '' if v.nil? - if k == "Num Tests" - assert(numtests.nil?, "datafile parsing error: there can be only one NumTests") - numtests = v.to_i - testnum = 0 - next - elsif k == "Name" - name = v.strip - elsif k == "Link" or k == "Link*" - attrs = {} - v.strip.split.each{|a| - kk,vv = a.split('=') - attrs[kk]=vv - } - expected_links << [k== "Link*", attrs] - else - assert(false, "datafile parsing error: bad header #{h}") - end - } - links = OpenID::parse_link_attrs(html) - - found = links.dup - expected = expected_links.dup - while(fl = found.shift) - optional, el = expected.shift - while optional and !attr_cmp(el, fl) and not expected.empty? - optional, el = expected.shift - end - assert(attr_cmp(el,fl), "#{name}: #{fl.inspect} does not match #{el.inspect}") - end - } - assert_equal(numtests, testnum, "Number of tests") - end -end |