summaryrefslogtreecommitdiff
path: root/certs/test/unit/cert_test.rb
blob: 21ef169119533322a7c4750376b266c2949fc5d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
require 'test_helper'

class CertTest < ActiveSupport::TestCase

  setup do
    @sample = Cert.new
    @sample.set_random
    @sample.attach_zip
  end

  test "certs come with attachments" do
    assert @sample.has_attachment? "cert.txt"
  end

  test "cert.zip_attachment returns couchDB attachment" do
    assert_equal "text/plain", @sample.zip_attachment["content_type"]
  end

  test "cert.zipped returns the actual data" do
    @sample.save # This is required!
    assert lines = @sample.zipped.split("\n")
    assert_equal "-----BEGIN RSA PRIVATE KEY-----", lines.first.chomp
    assert_equal "-----END CERTIFICATE-----", lines.last.chomp
  end

  test "cert.zipname returns name for the zip file" do
    assert_equal "cert.txt", @sample.zipname
  end

  test "test data is valid" do
    assert @sample.valid?
  end

  test "validates random" do
    @sample.stubs(:set_random)
    [0, 1, nil, "asdf"].each do |invalid|
      @sample.random = invalid
      assert !@sample.valid?, "#{invalid} should not be a valid value for random"
    end
  end

  test "validates attachment" do
    @sample.stubs(:attach_zip)
    @sample.delete_attachment(@sample.zipname)
    assert !@sample.valid?, "Cert should require zipped attachment"
  end

end