i18n_dashboard 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. checksums.yaml +7 -0
  2. data/app/assets/javascripts/i18n_dashboard/translations.js.coffee +1 -4
  3. data/app/controllers/i18n_dashboard/application_controller.rb +1 -0
  4. data/app/controllers/i18n_dashboard/translations_controller.rb +17 -2
  5. data/app/models/i18n_dashboard/translation.rb +19 -1
  6. data/app/views/i18n_dashboard/translations/_key_translation.html.haml +11 -0
  7. data/app/views/i18n_dashboard/translations/create.js.erb +14 -0
  8. data/app/views/i18n_dashboard/translations/destroy.js.erb +2 -0
  9. data/app/views/i18n_dashboard/translations/index.html.haml +5 -14
  10. data/lib/i18n_dashboard/engine.rb +4 -2
  11. data/lib/i18n_dashboard/version.rb +1 -1
  12. data/test/dummy/log/development.log +15775 -0
  13. data/test/dummy/log/test.log +15924 -0
  14. data/test/dummy/tmp/cache/assets/BEA/DC0/sprockets%2F10068836bf037067044c7148091e803f +0 -0
  15. data/test/dummy/tmp/cache/assets/C2E/6D0/sprockets%2F4e67448259041ba8cd392482165e3858 +0 -0
  16. data/test/dummy/tmp/cache/assets/C34/090/sprockets%2F45745d1a263a7748995c3391c63852e9 +0 -0
  17. data/test/dummy/tmp/cache/assets/C47/4E0/sprockets%2F13362cae3940f117f151947930c90f14 +0 -0
  18. data/test/dummy/tmp/cache/assets/C54/110/sprockets%2F7b9923c6e59073072764d7c52c5f0014 +0 -0
  19. data/test/dummy/tmp/cache/assets/C54/480/sprockets%2F34403fb0970a7535e0f97638b96109b4 +0 -0
  20. data/test/dummy/tmp/cache/assets/C64/D60/sprockets%2Fc8a92468d422a463e2e65972534774e9 +0 -0
  21. data/test/dummy/tmp/cache/assets/C6F/E80/sprockets%2Fa6d1432e8471390fb4510270f4a22b76 +0 -0
  22. data/test/dummy/tmp/cache/assets/C76/B80/sprockets%2F9118a30039f6724945b502f2a57a07cc +0 -0
  23. data/test/dummy/tmp/cache/assets/C7A/CA0/sprockets%2Fe62364e35231a761b76b13037f954c2f +0 -0
  24. data/test/dummy/tmp/cache/assets/C7F/DC0/sprockets%2F10a9830f70dbc17082464128df29f467 +0 -0
  25. data/test/dummy/tmp/cache/assets/C85/FB0/sprockets%2F91c300a1ef58671c4151e82938e57e19 +0 -0
  26. data/test/dummy/tmp/cache/assets/C86/9D0/sprockets%2F135c8d207b42a5f63b79511fd3699446 +0 -0
  27. data/test/dummy/tmp/cache/assets/C88/9C0/sprockets%2F98319d0838870f6471d1f5d0b3922fd0 +0 -0
  28. data/test/dummy/tmp/cache/assets/CAB/EA0/sprockets%2F5da181b80511947fc1ef55b3238d3446 +0 -0
  29. data/test/dummy/tmp/cache/assets/CAC/F10/sprockets%2F31d0e7c0fe4b073c947522d711c78672 +0 -0
  30. data/test/dummy/tmp/cache/assets/CB5/7F0/sprockets%2F6d394ed3165e1918a0d78163c9214bc9 +0 -0
  31. data/test/dummy/tmp/cache/assets/CB6/D20/sprockets%2Fb0d1b7b9a6876924c6fe70717320457e +0 -0
  32. data/test/dummy/tmp/cache/assets/CB7/1F0/sprockets%2F15a7103000a1b644d0d0923e0d2ecb66 +0 -0
  33. data/test/dummy/tmp/cache/assets/CC2/080/sprockets%2F0ca44403e00ea75edc1702a0177f4723 +0 -0
  34. data/test/dummy/tmp/cache/assets/CD6/1B0/sprockets%2Fbbd090efd03d3313806757474bb4708b +0 -0
  35. data/test/dummy/tmp/cache/assets/CD6/9A0/sprockets%2Fe1583c200f70835802e7bfac24c7137e +0 -0
  36. data/test/dummy/tmp/cache/assets/CD7/220/sprockets%2Fe42cf92af5a6292b03768401421af8c4 +0 -0
  37. data/test/dummy/tmp/cache/assets/CD7/7E0/sprockets%2F657e943b402d4b6c02abc9850841cc17 +0 -0
  38. data/test/dummy/tmp/cache/assets/CD9/8C0/sprockets%2Ff38a9da11845e86eb14b6140c74c4621 +0 -0
  39. data/test/dummy/tmp/cache/assets/CDD/390/sprockets%2F2fa2c0696157e22608d5f2ec267138ea +0 -0
  40. data/test/dummy/tmp/cache/assets/CDF/F90/sprockets%2F333446b75244700bc8c9f3ce2574bef4 +0 -0
  41. data/test/dummy/tmp/cache/assets/CE1/690/sprockets%2F69143465b535d17d0ab17499f7bd23be +0 -0
  42. data/test/dummy/tmp/cache/assets/CE2/D70/sprockets%2F14e28d320d7c980f32c45c5109ec865f +0 -0
  43. data/test/dummy/tmp/cache/assets/CE3/910/sprockets%2F0f69e891e76f603460bb2d4be73754a0 +0 -0
  44. data/test/dummy/tmp/cache/assets/CE6/020/sprockets%2Fccd189a088c78d703f363c8e07207f23 +0 -0
  45. data/test/dummy/tmp/cache/assets/CE7/1B0/sprockets%2Ff111d344e99ece0759d61f8209e8a080 +0 -0
  46. data/test/dummy/tmp/cache/assets/CF0/290/sprockets%2F71d60670d99b0a225e83585ee9e59b8a +0 -0
  47. data/test/dummy/tmp/cache/assets/CF2/420/sprockets%2F40cc2201a13d1d84347450aa45f39aec +0 -0
  48. data/test/dummy/tmp/cache/assets/CF7/E80/sprockets%2Fc4231cb520e62c9c26e32c119a8aa452 +0 -0
  49. data/test/dummy/tmp/cache/assets/CFA/7B0/sprockets%2F7eb1056a2c3504c1be648b85aa85150a +0 -0
  50. data/test/dummy/tmp/cache/assets/CFE/AB0/sprockets%2Ff2366672ba76803060a3d33ef0ecb42b +0 -0
  51. data/test/dummy/tmp/cache/assets/D04/540/sprockets%2F344a140ebe37c8525d3ac475493cd0b6 +0 -0
  52. data/test/dummy/tmp/cache/assets/D04/A50/sprockets%2F9a5702b9d21b6b356fd1245a532eac48 +0 -0
  53. data/test/dummy/tmp/cache/assets/D0A/9D0/sprockets%2Fe026d4c914a79065f1bdb1443c52e9e4 +0 -0
  54. data/test/dummy/tmp/cache/assets/D0D/730/sprockets%2Fb0fc3100a5c456cb899555f20177ff6c +0 -0
  55. data/test/dummy/tmp/cache/assets/D0E/E90/sprockets%2F0113f4be0db99a5295cc357d5e77d720 +0 -0
  56. data/test/dummy/tmp/cache/assets/D10/7C0/sprockets%2F7e51a61d0e6c5d4943665e17a8264afa +0 -0
  57. data/test/dummy/tmp/cache/assets/D14/130/sprockets%2Fc47dc28f28112594e6b831206ee88dac +0 -0
  58. data/test/dummy/tmp/cache/assets/D15/530/sprockets%2F79528fc6ee0e46d0b2280e83fdf43054 +0 -0
  59. data/test/dummy/tmp/cache/assets/D16/6D0/sprockets%2Ff3b50c38d415cee782516d4eb199881a +0 -0
  60. data/test/dummy/tmp/cache/assets/D19/430/sprockets%2F27f1526f45d6378466f126faf4ecc08b +0 -0
  61. data/test/dummy/tmp/cache/assets/D1D/FD0/sprockets%2F3c05e53386f78a46f70bfb54048a9de9 +0 -0
  62. data/test/dummy/tmp/cache/assets/D21/540/sprockets%2F4f29668615b7d1b5f3a6397c4b6bdc79 +0 -0
  63. data/test/dummy/tmp/cache/assets/D22/810/sprockets%2F211b8a0202ec5cc02f4d72a76c3b385a +0 -0
  64. data/test/dummy/tmp/cache/assets/D24/C60/sprockets%2Ffca5e67963f5c74679cc43d9055a25e5 +0 -0
  65. data/test/dummy/tmp/cache/assets/D28/330/sprockets%2Ff22b706bf78de9975c7ef5df88082700 +0 -0
  66. data/test/dummy/tmp/cache/assets/D2A/BC0/sprockets%2Fe7ecf6362f5638d5b3d189e09a78369c +0 -0
  67. data/test/dummy/tmp/cache/assets/D2F/0B0/sprockets%2F255121ba090f48dcdf1e322eb7ea1099 +0 -0
  68. data/test/dummy/tmp/cache/assets/D35/130/sprockets%2F02d1845ddb029d6e52168ecd80bb443d +0 -0
  69. data/test/dummy/tmp/cache/assets/D3B/B10/sprockets%2Ff709dc8d507a843ba1d067dc9c261e04 +0 -0
  70. data/test/dummy/tmp/cache/assets/D3D/3A0/sprockets%2F5d572a2c450976ba803f11efcbf077e6 +0 -0
  71. data/test/dummy/tmp/cache/assets/D3F/4D0/sprockets%2F3c9bcd3b4b8a51797fe924d2540b671a +0 -0
  72. data/test/dummy/tmp/cache/assets/D40/480/sprockets%2F3360d4f443a1d4ddfe5e70688bd427d4 +0 -0
  73. data/test/dummy/tmp/cache/assets/D42/970/sprockets%2F4a8e2a13e6a48845b694d5defb36e313 +0 -0
  74. data/test/dummy/tmp/cache/assets/D4A/FE0/sprockets%2F71096363b9bac8448b8ddaf743f7bf06 +0 -0
  75. data/test/dummy/tmp/cache/assets/D4C/8F0/sprockets%2F91c3748be4d5d83687d62df1c745b4cb +0 -0
  76. data/test/dummy/tmp/cache/assets/D4F/1A0/sprockets%2F2c06dbb699e536e9516783dd507f2cdf +0 -0
  77. data/test/dummy/tmp/cache/assets/D52/510/sprockets%2Fafa6f0e91783285a62239f19abd9e88f +0 -0
  78. data/test/dummy/tmp/cache/assets/D54/A70/sprockets%2F51d271c45e113ccba0a07ede417d45d2 +0 -0
  79. data/test/dummy/tmp/cache/assets/D54/CF0/sprockets%2F0e695180e9bd9373a95db76b8bf0cf69 +0 -0
  80. data/test/dummy/tmp/cache/assets/D58/500/sprockets%2F16ee5ed923b6f204102f5eacc344ca02 +0 -0
  81. data/test/dummy/tmp/cache/assets/D59/750/sprockets%2F8577c1e6f9f8673dbc08528c46c9f0dc +0 -0
  82. data/test/dummy/tmp/cache/assets/D5E/D60/sprockets%2Fa16542dae11a0c28f64da023d98e7bc5 +0 -0
  83. data/test/dummy/tmp/cache/assets/D61/7A0/sprockets%2F0899e95ef47b29c79e53a7a6f6e4b9e1 +0 -0
  84. data/test/dummy/tmp/cache/assets/D66/930/sprockets%2F2e1082aff471daed254f4b6f3ae36174 +0 -0
  85. data/test/dummy/tmp/cache/assets/D69/580/sprockets%2F82cc61d95eab8e0384e0bddd051b6708 +0 -0
  86. data/test/dummy/tmp/cache/assets/D6A/660/sprockets%2F7383c8aeab65a454932a4e6ca7e01cf4 +0 -0
  87. data/test/dummy/tmp/cache/assets/D6B/A30/sprockets%2F4953faaf0994fdf44c268a2d3a2e34a1 +0 -0
  88. data/test/dummy/tmp/cache/assets/D70/AB0/sprockets%2F48cdf608333efc7a381a71cc19b9ad18 +0 -0
  89. data/test/dummy/tmp/cache/assets/D70/B60/sprockets%2F0e4af1c70210cea20082a802eb4cba0e +0 -0
  90. data/test/dummy/tmp/cache/assets/D71/930/sprockets%2Fb707a58c0c8e7a5ffc5a8720453fe4d2 +0 -0
  91. data/test/dummy/tmp/cache/assets/D74/170/sprockets%2Fa202c9cbd617a6e5a8522ee738f8da59 +0 -0
  92. data/test/dummy/tmp/cache/assets/D7A/710/sprockets%2F8cccd306d72f86436b7de69b046cf61e +0 -0
  93. data/test/dummy/tmp/cache/assets/D7C/370/sprockets%2F211da4b9bb70ace30d0a12e8b027c7e2 +0 -0
  94. data/test/dummy/tmp/cache/assets/D86/5E0/sprockets%2F75aa9a51d3aa7f1b617d854a210cdad0 +0 -0
  95. data/test/dummy/tmp/cache/assets/D8F/CC0/sprockets%2F55a03e7ae44cf2fa18dce0d071e5830c +0 -0
  96. data/test/dummy/tmp/cache/assets/D91/290/sprockets%2F0391fd70c9b712faa56af58ca2d2b0d6 +0 -0
  97. data/test/dummy/tmp/cache/assets/D92/6F0/sprockets%2F2ed080420a87d14f27bca6cfc327cb9c +0 -0
  98. data/test/dummy/tmp/cache/assets/D92/740/sprockets%2Fdeae1ce8c28571006f49f01aba59d13b +0 -0
  99. data/test/dummy/tmp/cache/assets/D95/260/sprockets%2F96e0889698ce56f4439d0fb7ee3cef7c +0 -0
  100. data/test/dummy/tmp/cache/assets/D99/320/sprockets%2Fab8ae450fc56b844d42a59c05c8c2cb7 +0 -0
  101. data/test/dummy/tmp/cache/assets/D99/3D0/sprockets%2F303b1c9cb8556ca3dc1ca1583f5e9fb6 +0 -0
  102. data/test/dummy/tmp/cache/assets/D9F/E40/sprockets%2F89672edc77c5cc51fd6d50ab3507cb1d +0 -0
  103. data/test/dummy/tmp/cache/assets/DA0/6D0/sprockets%2F3abb94bfef783f5e345d810b713ed23f +0 -0
  104. data/test/dummy/tmp/cache/assets/DA0/C20/sprockets%2F29563dbecedcba0e44f34d6f135769c2 +0 -0
  105. data/test/dummy/tmp/cache/assets/DA2/320/sprockets%2F351f9cef26f6bac12704e7641fb6d7ce +0 -0
  106. data/test/dummy/tmp/cache/assets/DA3/160/sprockets%2Fd553d92fe1ffa3e59eaebc7c10600797 +0 -0
  107. data/test/dummy/tmp/cache/assets/DA3/960/sprockets%2F702f3a43ffb940ad4f47c6317e8adc9f +0 -0
  108. data/test/dummy/tmp/cache/assets/DA3/FA0/sprockets%2F2b9639b1fc7cf184f3c809d1c4ecc62c +0 -0
  109. data/test/dummy/tmp/cache/assets/DA9/DC0/sprockets%2F9eb5e10b4e97a7f7d832fa9afd47025d +0 -0
  110. data/test/dummy/tmp/cache/assets/DB2/A20/sprockets%2F2e4ba91bc80af374de95e98ee6346f8d +0 -0
  111. data/test/dummy/tmp/cache/assets/DC1/450/sprockets%2F47863aec281de0371cd2e0179eebcaaa +0 -0
  112. data/test/dummy/tmp/cache/assets/DC1/C40/sprockets%2F09dde380e084e0db2ac732e05fba80fe +0 -0
  113. data/test/dummy/tmp/cache/assets/DC2/1E0/sprockets%2F0db694d4ff8bd3dc88389088e7e6fa9f +0 -0
  114. data/test/dummy/tmp/cache/assets/DC4/FA0/sprockets%2F3fafe212ddf2ef2075eb5fddd2337044 +0 -0
  115. data/test/dummy/tmp/cache/assets/DC5/B50/sprockets%2Fcd662aa6df900370dbc7fccbe51a6627 +0 -0
  116. data/test/dummy/tmp/cache/assets/DCA/9F0/sprockets%2F9ade3ca4802ced7e92ac5b575232b8bd +0 -0
  117. data/test/dummy/tmp/cache/assets/DCD/780/sprockets%2Fd579c44bbefeb5505133b8db11e5fdf5 +0 -0
  118. data/test/dummy/tmp/cache/assets/DCF/B30/sprockets%2Fd63b693c1fc75e60cb5f60dd24a5e7ce +0 -0
  119. data/test/dummy/tmp/cache/assets/DD1/1D0/sprockets%2F3ba28ff187fc1853310effb2ffc77be2 +0 -0
  120. data/test/dummy/tmp/cache/assets/DD6/8B0/sprockets%2Feddcd94b1bda5b59635b89464ad428dd +0 -0
  121. data/test/dummy/tmp/cache/assets/DD6/C90/sprockets%2Fe37b9fca0fe96c938bbe0e93b013ce67 +0 -0
  122. data/test/dummy/tmp/cache/assets/DD7/DC0/sprockets%2F94f1451efc5534b6e18becb9ff751aed +0 -0
  123. data/test/dummy/tmp/cache/assets/DD8/6A0/sprockets%2F0d30b82ef577bb49c82bfb8a692afc9f +0 -0
  124. data/test/dummy/tmp/cache/assets/DD8/E80/sprockets%2F1637bf704b8d9fa4e49a9a5784dfbcaa +0 -0
  125. data/test/dummy/tmp/cache/assets/DD9/0B0/sprockets%2F2bfb5f4743b47bea34aa8f5c95d9a68f +0 -0
  126. data/test/dummy/tmp/cache/assets/DD9/AB0/sprockets%2Fe52fa74656a420f92e9dcc8f2ca55efe +0 -0
  127. data/test/dummy/tmp/cache/assets/DDA/580/sprockets%2F53cdc9ad3cf158349caf8ef536cf7a44 +0 -0
  128. data/test/dummy/tmp/cache/assets/DDC/AF0/sprockets%2Fc930d4549ca9885a8fec4ebb7b64bec4 +0 -0
  129. data/test/dummy/tmp/cache/assets/DDE/B80/sprockets%2Fdf945ce7f39f7b25765e2ef0b1eb9fa1 +0 -0
  130. data/test/dummy/tmp/cache/assets/DDF/3B0/sprockets%2F1805cdd895745350c9ecacdd4f99bcfe +0 -0
  131. data/test/dummy/tmp/cache/assets/DE0/FA0/sprockets%2Fe409d7d34cf2851e8d2ddcafd9f94d73 +0 -0
  132. data/test/dummy/tmp/cache/assets/DE7/BE0/sprockets%2Fe8d10a331caebc4c8953cf2b803bbb0e +0 -0
  133. data/test/dummy/tmp/cache/assets/DF1/A60/sprockets%2F0cf13d96aed2aa1f69d0f17bdab2609e +0 -0
  134. data/test/dummy/tmp/cache/assets/DF9/6B0/sprockets%2F0debdb9d0d09b5b678ac8bbe10db7566 +0 -0
  135. data/test/dummy/tmp/cache/assets/DF9/720/sprockets%2F6d48ab8fa8a367db2a9060bcccd24bf7 +0 -0
  136. data/test/dummy/tmp/cache/assets/DFA/350/sprockets%2Fd37bbf5f6190eb91caed11eb7b356d8a +0 -0
  137. data/test/dummy/tmp/cache/assets/DFD/640/sprockets%2F69c6e75bbdd265ab1e722d2ba8c2dce9 +0 -0
  138. data/test/dummy/tmp/cache/assets/E53/0A0/sprockets%2Facf6a3f7ca9c7acfcb221ca0e5ac9394 +0 -0
  139. data/test/dummy/tmp/cache/assets/E5E/BF0/sprockets%2Fddca7976cb6eba17ce07a85cae6ca85a +0 -0
  140. data/test/dummy/tmp/cache/assets/E5E/CA0/sprockets%2F8a6ad0b9dbeabecdf51894cd0ecb8843 +0 -0
  141. data/test/dummy/tmp/cache/assets/E66/870/sprockets%2Fcdde2a57ddd279c726dafc3d13efa89e +0 -0
  142. data/test/dummy/tmp/cache/assets/E94/EB0/sprockets%2Fd0eefae6feda73ad8d6afa9e605dc762 +0 -0
  143. data/test/dummy/tmp/cache/assets/E9B/440/sprockets%2Fe610dc6bb0eea98cd9f3a5dffebf5f96 +0 -0
  144. data/test/functional/i18n_dashboard/translations_controller_test.rb +29 -3
  145. data/test/i18n_dashboard/configuration_test.rb +4 -4
  146. data/test/integration/i18n_dashboard/translations_test.rb +110 -0
  147. data/test/test_helper.rb +24 -1
  148. data/test/unit/i18n_dashboard/translation_test.rb +17 -4
  149. metadata +328 -44
@@ -2,8 +2,34 @@ require 'test_helper'
2
2
 
3
3
  module I18nDashboard
4
4
  class TranslationsControllerTest < ActionController::TestCase
5
- # test "the truth" do
6
- # assert true
7
- # end
5
+
6
+ test "should process index" do
7
+ process :index, use_route: :i18n_dashboard
8
+ assert_response :success
9
+ assert_not_nil assigns(:translations)
10
+ end
11
+
12
+ test "should process create as HTML" do
13
+ process :create, key: 'test.lol', value: 'lol', locale: 'es', use_route: :i18n_dashboard, format: :html
14
+ assert_redirected_to i18n_dashboard_root_path
15
+ end
16
+
17
+ test "should process create as JS" do
18
+ process :create, key: 'test.lol', value: 'lol', locale: 'es', use_route: :i18n_dashboard, format: :js
19
+ assert_not_nil assigns(:digest)
20
+ assert_response :success
21
+ end
22
+
23
+ test "should process destroy as HTML" do
24
+ process :destroy, use_route: :i18n_dashboard, format: :html
25
+ assert_redirected_to i18n_dashboard_root_path
26
+
27
+ end
28
+
29
+ test "should process destroy as JS" do
30
+ process :destroy, use_route: :i18n_dashboard, format: :js
31
+ assert_response :success
32
+ end
33
+
8
34
  end
9
35
  end
@@ -5,19 +5,19 @@ module I18nDashboard
5
5
  class ConfigurationTest < ActiveSupport::TestCase
6
6
 
7
7
  def setup
8
- @blog_configuration = I18nDashboard::Configuration.new
8
+ @i18n_configuration = I18nDashboard::Configuration.new
9
9
  end
10
10
 
11
11
  test "should set :authentication_method to nil" do
12
- assert_nil @blog_configuration.authentication_method
12
+ assert_nil @i18n_configuration.authentication_method
13
13
  end
14
14
 
15
15
  test "should set :layout to nil" do
16
- assert_nil @blog_configuration.layout
16
+ assert_nil @i18n_configuration.layout
17
17
  end
18
18
 
19
19
  test "should set :inline_main_app_named_routes to false" do
20
- assert !@blog_configuration.inline_main_app_named_routes
20
+ assert !@i18n_configuration.inline_main_app_named_routes
21
21
  end
22
22
  end
23
23
  end
@@ -0,0 +1,110 @@
1
+ require 'test_helper'
2
+ require 'digest/md5'
3
+
4
+ class TranslationsTest < ActionDispatch::IntegrationTest
5
+
6
+ setup do
7
+ Capybara.current_driver = Capybara.javascript_driver
8
+ end
9
+
10
+
11
+ test "load translations" do
12
+ visit '/'
13
+ within("h1") do
14
+ assert page.has_content? 'Translations'
15
+ end
16
+
17
+ end
18
+
19
+
20
+ test "create a translation" do
21
+ visit '/'
22
+ click_link 'add-translation-link'
23
+ find("#add-translation").visible?
24
+
25
+ within('#form-translation') do
26
+ fill_in 'locale', with: 'en'
27
+ fill_in 'key', with: 'test.dog'
28
+ fill_in 'value', with: 'dog'
29
+ click_button 'Submit'
30
+ end
31
+
32
+ digest = digest_key('test.dog')
33
+
34
+ assert_no_selector("#add-translation")
35
+ assert page.has_css?("#translation_key_#{digest}")
36
+ within("#translation_key_#{digest}") do
37
+ assert page.has_content? 'test.dog'
38
+ assert page.has_content? 'dog'
39
+ end
40
+
41
+ I18nDashboard::Translation.destroy(digest)
42
+ end
43
+
44
+
45
+ test "edit a translation" do
46
+ digest = I18nDashboard::Translation.create('test.dog', 'dog', 'en')
47
+
48
+ visit '/'
49
+
50
+ within("#translation_key_#{digest}") do
51
+ click_link 'en.test.dog'
52
+ end
53
+
54
+ find("#add-translation").visible?
55
+ within('#form-translation') do
56
+ assert page.has_field? 'locale', with: 'en'
57
+ assert page.has_field? 'key', with: 'test.dog'
58
+ assert page.has_field? 'value', with: 'dog'
59
+
60
+ fill_in 'value', with: 'the dog'
61
+ click_button 'Submit'
62
+ end
63
+
64
+ assert_no_selector("#add-translation")
65
+ assert page.has_css?("#translation_key_#{digest}")
66
+ within("#translation_key_#{digest}") do
67
+ assert page.has_content? 'test.dog'
68
+ assert page.has_content? 'the dog'
69
+ end
70
+
71
+ I18nDashboard::Translation.destroy(digest)
72
+ end
73
+
74
+ test "destroy a translation" do
75
+ digest = I18nDashboard::Translation.create('test.dog', 'dog', 'en')
76
+ assert page.has_css?("#translation_key_#{digest}")
77
+ click_link "destroy-#{digest}"
78
+ I18nDashboard::Translation.destroy(digest)
79
+ end
80
+
81
+ test "search keys" do
82
+ I18nDashboard::Translation.create('test.dog', 'dog', 'en')
83
+ I18nDashboard::Translation.create('test.house', 'house', 'en')
84
+ I18nDashboard::Translation.create('test.chair', 'chair', 'en')
85
+ visit '/'
86
+
87
+ within('#search-form') do
88
+ fill_in 'query', with: 'o'
89
+ click_button 'search'
90
+ assert page.has_field? 'query', with: 'o'
91
+ end
92
+
93
+ within("#translation_key_#{digest_key('test.dog')}") do
94
+ assert page.has_content? 'test.dog'
95
+ assert page.has_content? 'dog'
96
+ end
97
+
98
+ within("#translation_key_#{digest_key('test.house')}") do
99
+ assert page.has_content? 'test.house'
100
+ assert page.has_content? 'house'
101
+ end
102
+
103
+ assert_no_selector("#translation_key_#{digest_key('test.chair')}")
104
+ end
105
+
106
+
107
+ def digest_key(key)
108
+ Digest::MD5.hexdigest(key)
109
+ end
110
+ end
@@ -1,5 +1,15 @@
1
+ require 'simplecov'
1
2
  require 'coveralls'
2
- Coveralls.wear!
3
+
4
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
5
+ SimpleCov::Formatter::HTMLFormatter,
6
+ Coveralls::SimpleCov::Formatter
7
+ ]
8
+ SimpleCov.start do
9
+ add_filter "/test/"
10
+ add_filter "/config/"
11
+ end
12
+
3
13
 
4
14
  # Configure Rails Environment
5
15
  ENV["RAILS_ENV"] = "test"
@@ -7,6 +17,10 @@ ENV["RAILS_ENV"] = "test"
7
17
  require File.expand_path("../dummy/config/environment.rb", __FILE__)
8
18
  require "rails/test_help"
9
19
 
20
+ require 'capybara/rails'
21
+ require 'capybara/poltergeist'
22
+ Capybara.javascript_driver = :poltergeist
23
+
10
24
  Rails.backtrace_cleaner.remove_silencers!
11
25
 
12
26
  # Load support files
@@ -16,3 +30,12 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
16
30
  if ActiveSupport::TestCase.method_defined?(:fixture_path=)
17
31
  ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
18
32
  end
33
+
34
+ class ActionController::TestCase
35
+ include I18nDashboard::Engine.routes.url_helpers
36
+ end
37
+
38
+ class ActionDispatch::IntegrationTest
39
+ # Make the Capybara DSL available in all integration tests
40
+ include Capybara::DSL
41
+ end