kuva 0.0.5 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +11 -10
  3. data/app/assets/stylesheets/kuva/{base.css.sass → base.sass} +0 -0
  4. data/lib/kuva/version.rb +1 -1
  5. metadata +37 -280
  6. data/.coveralls.yml +0 -1
  7. data/.env.example +0 -4
  8. data/.gitignore +0 -14
  9. data/.rspec +0 -1
  10. data/.ruby-gemset +0 -1
  11. data/.ruby-version +0 -1
  12. data/.travis.yml +0 -12
  13. data/Gemfile.lock +0 -191
  14. data/MIT-LICENSE +0 -20
  15. data/kuva.gemspec +0 -26
  16. data/spec/controllers/kuva/application_controller_spec.rb +0 -42
  17. data/spec/controllers/kuva/photos_controller_spec.rb +0 -22
  18. data/spec/controllers/kuva/sets_controller_spec.rb +0 -51
  19. data/spec/dummy/README.md +0 -1
  20. data/spec/dummy/Rakefile +0 -6
  21. data/spec/dummy/app/assets/images/.keep +0 -0
  22. data/spec/dummy/app/assets/javascripts/application.js +0 -13
  23. data/spec/dummy/app/assets/stylesheets/application.css +0 -13
  24. data/spec/dummy/app/controllers/application_controller.rb +0 -5
  25. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  26. data/spec/dummy/app/helpers/application_helper.rb +0 -2
  27. data/spec/dummy/app/mailers/.keep +0 -0
  28. data/spec/dummy/app/models/.keep +0 -0
  29. data/spec/dummy/app/models/concerns/.keep +0 -0
  30. data/spec/dummy/app/views/layouts/application.html.erb +0 -14
  31. data/spec/dummy/bin/bundle +0 -3
  32. data/spec/dummy/bin/rails +0 -4
  33. data/spec/dummy/bin/rake +0 -4
  34. data/spec/dummy/config.ru +0 -4
  35. data/spec/dummy/config/application.rb +0 -30
  36. data/spec/dummy/config/boot.rb +0 -5
  37. data/spec/dummy/config/database.yml +0 -25
  38. data/spec/dummy/config/environment.rb +0 -5
  39. data/spec/dummy/config/environments/development.rb +0 -29
  40. data/spec/dummy/config/environments/production.rb +0 -80
  41. data/spec/dummy/config/environments/test.rb +0 -39
  42. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
  43. data/spec/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  44. data/spec/dummy/config/initializers/inflections.rb +0 -16
  45. data/spec/dummy/config/initializers/kuva.rb +0 -29
  46. data/spec/dummy/config/initializers/mime_types.rb +0 -5
  47. data/spec/dummy/config/initializers/secret_token.rb +0 -12
  48. data/spec/dummy/config/initializers/session_store.rb +0 -3
  49. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
  50. data/spec/dummy/config/locales/en.yml +0 -23
  51. data/spec/dummy/config/routes.rb +0 -4
  52. data/spec/dummy/lib/assets/.keep +0 -0
  53. data/spec/dummy/log/.keep +0 -0
  54. data/spec/dummy/public/404.html +0 -58
  55. data/spec/dummy/public/422.html +0 -58
  56. data/spec/dummy/public/500.html +0 -57
  57. data/spec/dummy/public/favicon.ico +0 -0
  58. data/spec/features/photo_spec.rb +0 -40
  59. data/spec/features/photoset_collection_spec.rb +0 -25
  60. data/spec/features/photoset_spec.rb +0 -42
  61. data/spec/generators/kuva/assets_generator_spec.rb +0 -30
  62. data/spec/generators/kuva/install_generator_spec.rb +0 -63
  63. data/spec/generators/kuva/views_generator_spec.rb +0 -37
  64. data/spec/helpers/kuva/application_helper_spec.rb +0 -26
  65. data/spec/kuva/authorizer_spec.rb +0 -83
  66. data/spec/kuva/elements/photo_spec.rb +0 -76
  67. data/spec/kuva/elements/photoset_collection_spec.rb +0 -42
  68. data/spec/kuva/elements/photoset_spec.rb +0 -106
  69. data/spec/kuva/elements/url_info_spec.rb +0 -25
  70. data/spec/kuva_spec.rb +0 -81
  71. data/spec/spec_helper.rb +0 -68
  72. data/spec/support/vcr/cassettes/Kuva_ApplicationController/configuring_Kuva/sets_the_API_key.yml +0 -160
  73. data/spec/support/vcr/cassettes/Kuva_ApplicationController/configuring_Kuva/sets_the_access_secret.yml +0 -160
  74. data/spec/support/vcr/cassettes/Kuva_ApplicationController/configuring_Kuva/sets_the_access_token.yml +0 -160
  75. data/spec/support/vcr/cassettes/Kuva_ApplicationHelper/_breadcrumbs_for/when_the_current_page_is_NOT_the_set_page/creates_a_breadcrumb_with_the_set_URL.yml +0 -65
  76. data/spec/support/vcr/cassettes/Kuva_ApplicationHelper/_breadcrumbs_for/when_the_current_page_is_the_set_page/creates_a_breadcrumb_without_the_set_URL.yml +0 -222
  77. data/spec/support/vcr/cassettes/Kuva_Elements_Photo/_find/fetches_the_photo_from_Flickr_specified_by_id.yml +0 -95
  78. data/spec/support/vcr/cassettes/Kuva_Elements_Photo/_find/instantiates_a_new_Kuva_Elements_Photo_object.yml +0 -252
  79. data/spec/support/vcr/cassettes/Kuva_Elements_Photo/_initialize/does_NOT_set_the_is_primary_boolean.yml +0 -252
  80. data/spec/support/vcr/cassettes/Kuva_Elements_Photo/_initialize/returns_itself.yml +0 -95
  81. data/spec/support/vcr/cassettes/Kuva_Elements_Photo/_initialize/saves_a_reference_to_the_description.yml +0 -95
  82. data/spec/support/vcr/cassettes/Kuva_Elements_Photo/_initialize/saves_a_reference_to_the_farm.yml +0 -95
  83. data/spec/support/vcr/cassettes/Kuva_Elements_Photo/_initialize/saves_a_reference_to_the_id.yml +0 -95
  84. data/spec/support/vcr/cassettes/Kuva_Elements_Photo/_initialize/saves_a_reference_to_the_secret.yml +0 -95
  85. data/spec/support/vcr/cassettes/Kuva_Elements_Photo/_initialize/saves_a_reference_to_the_server.yml +0 -252
  86. data/spec/support/vcr/cassettes/Kuva_Elements_Photo/_initialize/saves_a_reference_to_the_title.yml +0 -95
  87. data/spec/support/vcr/cassettes/Kuva_Elements_Photo/image_URLs/generates_an_image_URL_for_a_default_sized_medium_image.yml +0 -95
  88. data/spec/support/vcr/cassettes/Kuva_Elements_Photo/image_URLs/generates_an_image_URL_for_a_n-sized_small_320_image.yml +0 -252
  89. data/spec/support/vcr/cassettes/Kuva_Elements_Photo/image_URLs/instantiates_a_new_URL_info_object_to_create_image_URLs.yml +0 -95
  90. data/spec/support/vcr/cassettes/Kuva_Elements_Photoset/_find/fetches_the_photoset_from_Flickr_specified_by_id.yml +0 -65
  91. data/spec/support/vcr/cassettes/Kuva_Elements_Photoset/_find/instantiates_a_new_Kuva_Elements_Photoset_object.yml +0 -65
  92. data/spec/support/vcr/cassettes/Kuva_Elements_Photoset/_image_url/generates_an_image_URL_for_a_large_square_image.yml +0 -65
  93. data/spec/support/vcr/cassettes/Kuva_Elements_Photoset/_image_url/instantiates_a_new_URL_info_object_to_create_an_image_URL.yml +0 -222
  94. data/spec/support/vcr/cassettes/Kuva_Elements_Photoset/_initialize/returns_itself.yml +0 -65
  95. data/spec/support/vcr/cassettes/Kuva_Elements_Photoset/_initialize/saves_a_reference_to_the_created_at_date.yml +0 -65
  96. data/spec/support/vcr/cassettes/Kuva_Elements_Photoset/_initialize/saves_a_reference_to_the_description.yml +0 -65
  97. data/spec/support/vcr/cassettes/Kuva_Elements_Photoset/_initialize/saves_a_reference_to_the_farm.yml +0 -65
  98. data/spec/support/vcr/cassettes/Kuva_Elements_Photoset/_initialize/saves_a_reference_to_the_id.yml +0 -65
  99. data/spec/support/vcr/cassettes/Kuva_Elements_Photoset/_initialize/saves_a_reference_to_the_number_of_photos.yml +0 -65
  100. data/spec/support/vcr/cassettes/Kuva_Elements_Photoset/_initialize/saves_a_reference_to_the_number_of_views.yml +0 -65
  101. data/spec/support/vcr/cassettes/Kuva_Elements_Photoset/_initialize/saves_a_reference_to_the_primary_id.yml +0 -222
  102. data/spec/support/vcr/cassettes/Kuva_Elements_Photoset/_initialize/saves_a_reference_to_the_secret.yml +0 -65
  103. data/spec/support/vcr/cassettes/Kuva_Elements_Photoset/_initialize/saves_a_reference_to_the_server.yml +0 -65
  104. data/spec/support/vcr/cassettes/Kuva_Elements_Photoset/_initialize/saves_a_reference_to_the_title.yml +0 -222
  105. data/spec/support/vcr/cassettes/Kuva_Elements_Photoset/_initialize/saves_a_reference_to_the_updated_at_date.yml +0 -65
  106. data/spec/support/vcr/cassettes/Kuva_Elements_Photoset/_with_photos/returns_an_array.yml +0 -162
  107. data/spec/support/vcr/cassettes/Kuva_Elements_Photoset/_with_photos/returns_an_array_with_the_size_specified_by_number_of_photos.yml +0 -162
  108. data/spec/support/vcr/cassettes/Kuva_Elements_Photoset/_with_photos/wraps_the_photos_into_a_Kuva_Elements_Photo_element.yml +0 -319
  109. data/spec/support/vcr/cassettes/Kuva_Elements_PhotosetCollection/_photosets/retrieves_all_photosets.yml +0 -2761
  110. data/spec/support/vcr/cassettes/Kuva_Elements_PhotosetCollection/_photosets/returns_an_array.yml +0 -2918
  111. data/spec/support/vcr/cassettes/Kuva_Elements_PhotosetCollection/_photosets/wraps_the_photosets_into_a_Kuva_Elements_Photoset_element.yml +0 -2761
  112. data/spec/support/vcr/cassettes/Kuva_Elements_PhotosetCollection/_retrieve/fetches_all_photosets_from_Flickr.yml +0 -2918
  113. data/spec/support/vcr/cassettes/Kuva_Elements_PhotosetCollection/_retrieve/instantiates_a_new_Kuva_Elements_PhotosetCollection_object.yml +0 -2761
  114. data/spec/support/vcr/cassettes/Kuva_PhotosController/_show/assigns_the_photo.yml +0 -314
  115. data/spec/support/vcr/cassettes/Kuva_PhotosController/_show/finds_the_photo.yml +0 -157
  116. data/spec/support/vcr/cassettes/Kuva_SetsController/_index/assigns_the_photoset_collection_with_photosets.yml +0 -2761
  117. data/spec/support/vcr/cassettes/Kuva_SetsController/_index/knows_its_type.yml +0 -2918
  118. data/spec/support/vcr/cassettes/Kuva_SetsController/_index/retrieves_the_entire_photoset_collection.yml +0 -160
  119. data/spec/support/vcr/cassettes/Kuva_SetsController/_show/assigns_the_photos_of_the_specified_photoset.yml +0 -2858
  120. data/spec/support/vcr/cassettes/Kuva_SetsController/_show/finds_the_specified_photoset_within_the_entire_photoset_collection.yml +0 -2858
  121. data/spec/support/vcr/cassettes/Kuva_SetsController/_show/knows_its_type.yml +0 -2858
  122. data/spec/support/vcr/cassettes/photo/navigating_back_to_the_photoset_page.yml +0 -3169
  123. data/spec/support/vcr/cassettes/photo/viewing_the_first_photo_of_the_photoset.yml +0 -157
  124. data/spec/support/vcr/cassettes/photoset/navigating_back_to_the_photoset_collection_page.yml +0 -5616
  125. data/spec/support/vcr/cassettes/photoset/navigating_to_the_page_with_details_of_the_first_photo.yml +0 -3012
  126. data/spec/support/vcr/cassettes/photoset/viewing_the_first_photo_of_the_photoset.yml +0 -314
  127. data/spec/support/vcr/cassettes/photoset/viewing_the_first_photoset_of_the_photoset_collection.yml +0 -3015
  128. data/spec/support/vcr/cassettes/photoset_collection/navigating_to_the_page_with_photos_of_the_first_photoset.yml +0 -5616
  129. data/spec/support/vcr/cassettes/photoset_collection/viewing_the_photoset_collection.yml +0 -2761
  130. data/spec/support/vcr/vcr.rb +0 -17
@@ -1,58 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>The change you wanted was rejected (422)</title>
5
- <style>
6
- body {
7
- background-color: #EFEFEF;
8
- color: #2E2F30;
9
- text-align: center;
10
- font-family: arial, sans-serif;
11
- }
12
-
13
- div.dialog {
14
- width: 25em;
15
- margin: 4em auto 0 auto;
16
- border: 1px solid #CCC;
17
- border-right-color: #999;
18
- border-left-color: #999;
19
- border-bottom-color: #BBB;
20
- border-top: #B00100 solid 4px;
21
- border-top-left-radius: 9px;
22
- border-top-right-radius: 9px;
23
- background-color: white;
24
- padding: 7px 4em 0 4em;
25
- }
26
-
27
- h1 {
28
- font-size: 100%;
29
- color: #730E15;
30
- line-height: 1.5em;
31
- }
32
-
33
- body > p {
34
- width: 33em;
35
- margin: 0 auto 1em;
36
- padding: 1em 0;
37
- background-color: #F7F7F7;
38
- border: 1px solid #CCC;
39
- border-right-color: #999;
40
- border-bottom-color: #999;
41
- border-bottom-left-radius: 4px;
42
- border-bottom-right-radius: 4px;
43
- border-top-color: #DADADA;
44
- color: #666;
45
- box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
46
- }
47
- </style>
48
- </head>
49
-
50
- <body>
51
- <!-- This file lives in public/422.html -->
52
- <div class="dialog">
53
- <h1>The change you wanted was rejected.</h1>
54
- <p>Maybe you tried to change something you didn't have access to.</p>
55
- </div>
56
- <p>If you are the application owner check the logs for more information.</p>
57
- </body>
58
- </html>
@@ -1,57 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>We're sorry, but something went wrong (500)</title>
5
- <style>
6
- body {
7
- background-color: #EFEFEF;
8
- color: #2E2F30;
9
- text-align: center;
10
- font-family: arial, sans-serif;
11
- }
12
-
13
- div.dialog {
14
- width: 25em;
15
- margin: 4em auto 0 auto;
16
- border: 1px solid #CCC;
17
- border-right-color: #999;
18
- border-left-color: #999;
19
- border-bottom-color: #BBB;
20
- border-top: #B00100 solid 4px;
21
- border-top-left-radius: 9px;
22
- border-top-right-radius: 9px;
23
- background-color: white;
24
- padding: 7px 4em 0 4em;
25
- }
26
-
27
- h1 {
28
- font-size: 100%;
29
- color: #730E15;
30
- line-height: 1.5em;
31
- }
32
-
33
- body > p {
34
- width: 33em;
35
- margin: 0 auto 1em;
36
- padding: 1em 0;
37
- background-color: #F7F7F7;
38
- border: 1px solid #CCC;
39
- border-right-color: #999;
40
- border-bottom-color: #999;
41
- border-bottom-left-radius: 4px;
42
- border-bottom-right-radius: 4px;
43
- border-top-color: #DADADA;
44
- color: #666;
45
- box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
46
- }
47
- </style>
48
- </head>
49
-
50
- <body>
51
- <!-- This file lives in public/500.html -->
52
- <div class="dialog">
53
- <h1>We're sorry, but something went wrong.</h1>
54
- </div>
55
- <p>If you are the application owner check the logs for more information.</p>
56
- </body>
57
- </html>
File without changes
@@ -1,40 +0,0 @@
1
- require "spec_helper"
2
-
3
- feature "photo", :vcr do
4
-
5
- let(:photoset_id) { "72157632367381040" }
6
- let(:photo_id) { "8318972536" }
7
-
8
- background { visit kuva.set_photo_path(set_id: photoset_id, id: photo_id) }
9
-
10
- scenario "viewing the first photo of the photoset" do
11
- within "ul.breadcrumbs" do
12
- expect(page).to have_selector "li", text: "Photosets"
13
- expect(page).to have_selector "li", text: "Paris"
14
- end
15
-
16
- expect(page).to have_selector "h1", text: "Top of the Eiffel Tower"
17
- expect(page).to have_selector "p", text: "These shots were taken in Paris, France in December 2012. Most of them are taken with my Nikon D80 and Nikkor 50mm f/1.8 or Tokina 12-24mm f/4."
18
- expect(page).to have_selector "img", count: 1
19
- end
20
-
21
- scenario "navigating back to the photoset page" do
22
- expect(page).to have_selector "h1", text: "Top of the Eiffel Tower"
23
-
24
- within "ul.breadcrumbs" do
25
- expect(page).to have_selector "li", text: "Photosets"
26
- expect(page).to have_selector "li", text: "Paris"
27
-
28
- click_link "Paris"
29
- end
30
-
31
- expect(page).to have_selector "h1", text: "Paris"
32
- expect(page).not_to have_selector "h1", text: "Top of the Eiffel Tower"
33
-
34
- within "ul.breadcrumbs" do
35
- expect(page).to have_selector "li", text: "Photosets"
36
- expect(page).not_to have_selector "li", text: "Paris"
37
- end
38
- end
39
-
40
- end
@@ -1,25 +0,0 @@
1
- require "spec_helper"
2
-
3
- feature "photoset collection", :vcr do
4
-
5
- background { visit kuva.root_path }
6
-
7
- scenario "viewing the photoset collection" do
8
- expect(page).to have_selector "h1", text: "Photosets"
9
- expect(page).to have_selector "ul.photosets li a img", count: 40
10
- expect(page).not_to have_selector "ul.breadcrumbs"
11
- end
12
-
13
- scenario "navigating to the page with photos of the first photoset" do
14
- expect(page).to have_selector "h1", text: "Photosets"
15
-
16
- within "ul.photosets li:first" do
17
- expect(page).to have_content "Paris"
18
- find(:xpath, ".//a/img[@alt='Paris']/..").click
19
- end
20
-
21
- expect(page).to have_selector "h1", text: "Paris"
22
- expect(page).to have_selector ".photos a img", count: 28
23
- end
24
-
25
- end
@@ -1,42 +0,0 @@
1
- require "spec_helper"
2
-
3
- feature "photoset", :vcr do
4
-
5
- let(:photoset_id) { "72157632367381040" }
6
-
7
- background { visit kuva.set_path(id: photoset_id) }
8
-
9
- scenario "viewing the first photoset of the photoset collection" do
10
- within "ul.breadcrumbs" do
11
- expect(page).to have_selector "li", text: "Photosets"
12
- expect(page).not_to have_selector "li", text: "Paris"
13
- end
14
-
15
- expect(page).to have_selector "h1", text: "Paris"
16
- expect(page).to have_selector ".photos a img", count: 28
17
- end
18
-
19
- scenario "navigating back to the photoset collection page" do
20
- expect(page).to have_selector "h1", text: "Paris"
21
-
22
- within "ul.breadcrumbs" do
23
- click_link "Photosets"
24
- end
25
-
26
- expect(page).to have_selector "h1", text: "Photosets"
27
- expect(page).not_to have_selector "h1", text: "Paris"
28
- expect(page).not_to have_selector "ul.breadcrumbs"
29
- end
30
-
31
- scenario "navigating to the page with details of the first photo" do
32
- expect(page).to have_selector "h1", text: "Paris"
33
-
34
- within ".photos" do
35
- expect(page).to have_link "Top of the Eiffel Tower"
36
- click_link "Top of the Eiffel Tower"
37
- end
38
-
39
- expect(page).to have_selector "h1", text: "Top of the Eiffel Tower"
40
- expect(page).not_to have_selector "h1", text: "Paris"
41
- end
42
- end
@@ -1,30 +0,0 @@
1
- require "spec_helper"
2
- require "generators/kuva/assets_generator"
3
-
4
- module Kuva
5
- module Generators
6
- describe AssetsGenerator do
7
- destination File.expand_path("../../../../tmp", __FILE__)
8
-
9
- let(:javascript) { file("app/assets/javascripts/kuva.js.coffee") }
10
- let(:stylesheet) { file("app/assets/stylesheets/kuva.css.sass") }
11
-
12
- before do
13
- prepare_destination
14
- run_generator
15
- end
16
-
17
- it "generates app/assets/javascript/kuva.js.coffee" do
18
- expect(javascript).to exist
19
- end
20
-
21
- it "generates app/assets/stylesheets/kuva.css.sass" do
22
- expect(stylesheet).to exist
23
- end
24
-
25
- after do
26
- FileUtils.rm_rf File.expand_path("../../../../tmp", __FILE__)
27
- end
28
- end
29
- end
30
- end
@@ -1,63 +0,0 @@
1
- require "spec_helper"
2
- require "generators/kuva/install_generator"
3
-
4
- module Kuva
5
- module Generators
6
- describe InstallGenerator do
7
- destination File.expand_path("../../../../tmp", __FILE__)
8
-
9
- let(:initializer) { file("config/initializers/kuva.rb") }
10
- let(:locale) { file("config/locales/kuva.en.yml") }
11
- let(:routes) { file("config/routes.rb") }
12
-
13
- before do
14
- prepare_destination
15
- prepare_config_routes
16
- end
17
-
18
- it "generates config/initializers/kuva.rb" do
19
- capture(:stdout) { generator.invoke :copy_initializer }
20
- expect(initializer).to exist
21
- end
22
-
23
- it "generates config/locales/kuva.en.yml" do
24
- capture(:stdout) { generator.invoke :copy_locale }
25
- expect(locale).to exist
26
- end
27
-
28
- it "generates assets" do
29
- expect_any_instance_of(described_class).to receive(:generate).with "kuva:assets"
30
- generator.invoke :create_assets
31
- end
32
-
33
- context "mounting of the Kuva engine" do
34
- context "when it has been mounted" do
35
- before { described_class.any_instance.stub_chain(:original_routes, :include?).and_return true }
36
-
37
- it "outputs a status message" do
38
- expect_any_instance_of(described_class).to receive(:say_status).with "skip", "mounting of Kuva into config/routes.rb", :yellow
39
- generator.invoke :mount_engine
40
- end
41
- end
42
-
43
- context "when it hasn't been mounted" do
44
- it "mounts the Kuva engine" do
45
- capture(:stdout) { generator.invoke :mount_engine }
46
- expect(routes).to contain 'mount Kuva::Engine => "/kuva"'
47
- end
48
- end
49
- end
50
-
51
- after do
52
- FileUtils.rm_rf destination_root
53
- end
54
-
55
- def prepare_config_routes
56
- FileUtils.mkdir "#{destination_root}/config"
57
- File.open("#{destination_root}/config/routes.rb", "w+") do |file|
58
- file.write "Rails.application.routes.draw do\nend"
59
- end
60
- end
61
- end
62
- end
63
- end
@@ -1,37 +0,0 @@
1
- require "spec_helper"
2
- require "generators/kuva/views_generator"
3
-
4
- module Kuva
5
- module Generators
6
- describe ViewsGenerator do
7
- destination File.expand_path("../../../../tmp", __FILE__)
8
-
9
- let(:views_directory) { "app/views/kuva" }
10
-
11
- let(:sets_index) { file("#{views_directory}/sets/index.html.haml") }
12
- let(:sets_show) { file("#{views_directory}/sets/show.html.haml") }
13
- let(:photos_show) { file("#{views_directory}/photos/show.html.haml") }
14
-
15
- before do
16
- prepare_destination
17
- run_generator
18
- end
19
-
20
- it "generates the app/views/kuva/photos/show.html.haml view" do
21
- expect(photos_show).to exist
22
- end
23
-
24
- it "generates the app/views/kuva/sets/index.html.haml view" do
25
- expect(sets_index).to exist
26
- end
27
-
28
- it "generates the app/views/kuva/sets/show.html.haml view" do
29
- expect(sets_show).to exist
30
- end
31
-
32
- after do
33
- FileUtils.rm_rf File.expand_path("../../../../tmp", __FILE__)
34
- end
35
- end
36
- end
37
- end
@@ -1,26 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe Kuva::ApplicationHelper, :vcr do
4
-
5
- describe "#breadcrumbs_for" do
6
- let(:photoset_id) { "72157632367381040" }
7
- let(:photoset) { Kuva::Elements::Photoset.find photoset_id }
8
-
9
- subject { helper.breadcrumbs_for photoset }
10
-
11
- context "when the current page is the set page" do
12
- before { allow(helper).to receive(:photoset_page?).and_return true }
13
-
14
- it "creates a breadcrumb without the set URL" do
15
- expect(subject).to eq '<ul class="breadcrumbs"><li><a href="http://test.host/kuva/">Photosets</a></li></ul>'
16
- end
17
- end
18
-
19
- context "when the current page is NOT the set page" do
20
- it "creates a breadcrumb with the set URL" do
21
- expect(subject).to eq '<ul class="breadcrumbs"><li><a href="http://test.host/kuva/">Photosets</a></li><li><a href="http://test.host/kuva/sets/72157632367381040">Paris</a></li></ul>'
22
- end
23
- end
24
- end
25
-
26
- end
@@ -1,83 +0,0 @@
1
- require "spec_helper"
2
-
3
- module Kuva
4
- describe Authorizer do
5
-
6
- context ".new" do
7
- before do
8
- allow(Kuva).to receive(:api_key).and_return "<api_key>"
9
- allow(Kuva).to receive(:shared_secret).and_return "<shared_secret>"
10
- end
11
-
12
- it "configures the FlickRaw API key" do
13
- described_class.new
14
- expect(FlickRaw.api_key).to eq "<api_key>"
15
- end
16
-
17
- it "configures the FlickRaw shared secret" do
18
- described_class.new
19
- expect(FlickRaw.shared_secret).to eq "<shared_secret>"
20
- end
21
- end
22
-
23
- context ".authorize" do
24
- it "authorizes" do
25
- allow_any_instance_of(Authorizer).to receive :authorize
26
- described_class.authorize
27
- end
28
- end
29
-
30
- context "#authorize" do
31
- before do
32
- allow(STDIN).to receive(:gets).and_return "<authorization_code>"
33
- end
34
-
35
- let(:output) do
36
- capture(:stdout) { subject.authorize }
37
- end
38
-
39
- context "with a valid authentication code" do
40
- before do
41
- allow(subject).to receive(:flickr).and_return double.as_null_object
42
- end
43
-
44
- it "outputs a notice about the authentication url" do
45
- allow(subject).to receive(:authentication_url).and_return "<url>"
46
- expect(output).to include "\nCopy the URL below and follow the steps on Flickr to authorize Kuva:\n<url>"
47
- end
48
-
49
- it "outputs a notice about the authentication code" do
50
- expect(output).to include "\nOnce you've authorized Kuva, you'll receive a code (in the form of xxx-xxx-xxx) from Flickr. Copy and paste that code here and press <enter>:\n"
51
- end
52
-
53
- it "outputs a confirmation notice" do
54
- allow(Kuva).to receive(:api_key).and_return "<api_key>"
55
- allow(Kuva).to receive(:shared_secret).and_return "<shared_secret>"
56
- subject.stub_chain(:flickr, :test, :login, :username).and_return "<username>"
57
- subject.stub_chain(:flickr, :access_token).and_return "<access_token>"
58
- subject.stub_chain(:flickr, :access_secret).and_return "<access_secret>"
59
-
60
- expect(output).to include "\n<username>, you've successfully authorized Kuva with Flickr. As you can see we've received your username. Besides that we've got the following access token '<access_token>' and access secret '<access_secret>'. Both the API key, shared secret and the previously mentioned variables should be saved for later use. They're all listed below. Place them in `config/initializers/kuva.rb` and you're good to go.\n\n\tapi_key: <api_key>\n\tshared_secret: <shared_secret>\n\taccess_token: <access_token>\n\taccess_secret: <access_secret>\n\n"
61
- end
62
- end
63
-
64
- context "with an invalid authentication code" do
65
- it "outputs an authentication error" do
66
- expect(output).to include "Authentication with Flickr failed: token_rejected"
67
- end
68
-
69
- context "with an incorrect API key and shared secret" do
70
- before do
71
- allow(FlickRaw).to receive(:api_key).and_return "<api_key>"
72
- allow(FlickRaw).to receive(:shared_secret).and_return "<shared_secret>"
73
- end
74
-
75
- it "raises a failed response error" do
76
- expect { flickr.get_access_token("<api_key>", "<shared_secret>", "<authentication_code>") }.to raise_error FlickRaw::OAuthClient::FailedResponse
77
- capture(:stdout) { subject.authorize }
78
- end
79
- end
80
- end
81
- end
82
- end
83
- end