document.write('<link rel="stylesheet" href="http://gist.github.com/stylesheets/gist/embed.css"/>')





document.write('<div id=\"gist-221971\" class=\"gist\">\n  \n  \n    \n            \n\n      <div class=\"gist-file\">\n        <div class=\"gist-data gist-syntax\">\n          \n          \n          \n            <div class=\"gist-highlight\"><pre><div class=\"line\" id=\"LC1\"><span class=\"nb\">require<\/span> <span class=\"s1\">&#39;rubygems&#39;<\/span><\/div><div class=\"line\" id=\"LC2\"><span class=\"nb\">require<\/span> <span class=\"s1\">&#39;sinatra&#39;<\/span><\/div><div class=\"line\" id=\"LC3\"><span class=\"nb\">require<\/span> <span class=\"s1\">&#39;sinatra/test/unit&#39;<\/span><\/div><div class=\"line\" id=\"LC4\"><span class=\"nb\">require<\/span> <span class=\"s1\">&#39;application&#39;<\/span><\/div><div class=\"line\" id=\"LC5\"><span class=\"nb\">require<\/span> <span class=\"s1\">&#39;base64&#39;<\/span><\/div><div class=\"line\" id=\"LC6\">&nbsp;<\/div><div class=\"line\" id=\"LC7\"><span class=\"k\">class<\/span> <span class=\"nc\">ApplicationTest<\/span> <span class=\"o\">&lt;<\/span> <span class=\"no\">Test<\/span><span class=\"o\">::<\/span><span class=\"no\">Unit<\/span><span class=\"o\">::<\/span><span class=\"no\">TestCase<\/span><\/div><div class=\"line\" id=\"LC8\">&nbsp;<\/div><div class=\"line\" id=\"LC9\">&nbsp;&nbsp;<span class=\"k\">def<\/span> <span class=\"nf\">test_without_authentication<\/span><\/div><div class=\"line\" id=\"LC10\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">get<\/span> <span class=\"s1\">&#39;/protected&#39;<\/span><\/div><div class=\"line\" id=\"LC11\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">assert_equal<\/span> <span class=\"mi\">401<\/span><span class=\"p\">,<\/span> <span class=\"vi\">@response<\/span><span class=\"o\">.<\/span><span class=\"n\">status<\/span><\/div><div class=\"line\" id=\"LC12\">&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC13\">&nbsp;<\/div><div class=\"line\" id=\"LC14\">&nbsp;&nbsp;<span class=\"k\">def<\/span> <span class=\"nf\">test_with_bad_credentials<\/span><\/div><div class=\"line\" id=\"LC15\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">get<\/span> <span class=\"s1\">&#39;/protected&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">{},<\/span> <span class=\"p\">{<\/span><span class=\"s1\">&#39;HTTP_AUTHORIZATION&#39;<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"n\">encode_credentials<\/span><span class=\"p\">(<\/span><span class=\"s1\">&#39;go&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s1\">&#39;away&#39;<\/span><span class=\"p\">)}<\/span><\/div><div class=\"line\" id=\"LC16\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">assert_equal<\/span> <span class=\"mi\">401<\/span><span class=\"p\">,<\/span> <span class=\"vi\">@response<\/span><span class=\"o\">.<\/span><span class=\"n\">status<\/span><\/div><div class=\"line\" id=\"LC17\">&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC18\">&nbsp;<\/div><div class=\"line\" id=\"LC19\">&nbsp;&nbsp;<span class=\"k\">def<\/span> <span class=\"nf\">test_with_proper_credentials<\/span><\/div><div class=\"line\" id=\"LC20\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">get<\/span> <span class=\"s1\">&#39;/protected&#39;<\/span><span class=\"p\">,<\/span> <span class=\"p\">{},<\/span> <span class=\"p\">{<\/span><span class=\"s1\">&#39;HTTP_AUTHORIZATION&#39;<\/span><span class=\"o\">=&gt;<\/span> <span class=\"n\">encode_credentials<\/span><span class=\"p\">(<\/span><span class=\"s1\">&#39;admin&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s1\">&#39;admin&#39;<\/span><span class=\"p\">)}<\/span><\/div><div class=\"line\" id=\"LC21\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">assert_equal<\/span> <span class=\"mi\">200<\/span><span class=\"p\">,<\/span> <span class=\"vi\">@response<\/span><span class=\"o\">.<\/span><span class=\"n\">status<\/span><\/div><div class=\"line\" id=\"LC22\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">assert_equal<\/span> <span class=\"s2\">&quot;You&#39;re welcome&quot;<\/span><span class=\"p\">,<\/span> <span class=\"vi\">@response<\/span><span class=\"o\">.<\/span><span class=\"n\">body<\/span><\/div><div class=\"line\" id=\"LC23\">&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC24\">&nbsp;<\/div><div class=\"line\" id=\"LC25\">&nbsp;&nbsp;<span class=\"kp\">private<\/span><\/div><div class=\"line\" id=\"LC26\">&nbsp;<\/div><div class=\"line\" id=\"LC27\">&nbsp;&nbsp;<span class=\"k\">def<\/span> <span class=\"nf\">encode_credentials<\/span><span class=\"p\">(<\/span><span class=\"n\">username<\/span><span class=\"p\">,<\/span> <span class=\"n\">password<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC28\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"s2\">&quot;Basic &quot;<\/span> <span class=\"o\">+<\/span> <span class=\"no\">Base64<\/span><span class=\"o\">.<\/span><span class=\"n\">encode64<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;<\/span><span class=\"si\">#{<\/span><span class=\"n\">username<\/span><span class=\"si\">}<\/span><span class=\"s2\">:<\/span><span class=\"si\">#{<\/span><span class=\"n\">password<\/span><span class=\"si\">}<\/span><span class=\"s2\">&quot;<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC29\">&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC30\">&nbsp;<\/div><div class=\"line\" id=\"LC31\"><span class=\"k\">end<\/span><\/div><\/pre><\/div>\n          \n        <\/div>\n\n        <div class=\"gist-meta\">\n          <a href=\"http://gist.github.com/raw/221971/caad66d893684911aa6660282bc1c601a9afbad2/testing_http_auth_in_sinatra.rb\" style=\"float:right;\">view raw<\/a>\n          <a href=\"http://gist.github.com/221971#file_testing_http_auth_in_sinatra.rb\" style=\"float:right;margin-right:10px;color:#666\">testing_http_auth_in_sinatra.rb<\/a>\n          <a href=\"http://gist.github.com/221971\">This Gist<\/a> brought to you by <a href=\"http://github.com\">GitHub<\/a>.\n        <\/div>\n      <\/div>\n    \n  \n<\/div>\n')
