lady_josephine 0.0.1

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 (304) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +32 -0
  4. data/app/assets/fonts/lady_josephine/icons/icons.eot +0 -0
  5. data/app/assets/fonts/lady_josephine/icons/icons.svg +215 -0
  6. data/app/assets/fonts/lady_josephine/icons/icons.ttf +0 -0
  7. data/app/assets/fonts/lady_josephine/icons/icons.woff +0 -0
  8. data/app/assets/javascripts/lady_josephine/blocks/facebook.js +25 -0
  9. data/app/assets/javascripts/lady_josephine/blocks/instagram.js +22 -0
  10. data/app/assets/javascripts/lady_josephine/blocks/soundcloud.js +24 -0
  11. data/app/assets/javascripts/lady_josephine/blocks/twitter.js +25 -0
  12. data/app/assets/javascripts/lady_josephine/blocks/vimeo.js +55 -0
  13. data/app/assets/javascripts/lady_josephine/blocks/youtube.js +64 -0
  14. data/app/assets/javascripts/lady_josephine/editor.js +40 -0
  15. data/app/assets/javascripts/lady_josephine/lady_josephine.js +4 -0
  16. data/app/assets/javascripts/lady_josephine/lady_josephine_view.js +6 -0
  17. data/app/assets/stylesheets/lady_josephine/content.sass +33 -0
  18. data/app/assets/stylesheets/lady_josephine/icons.sass +175 -0
  19. data/app/assets/stylesheets/lady_josephine/lady_josephine.sass +6 -0
  20. data/app/assets/stylesheets/lady_josephine/sir_trevor.sass +619 -0
  21. data/app/assets/stylesheets/lady_josephine/vars.sass +36 -0
  22. data/app/controllers/lady_josephine/application_controller.rb +4 -0
  23. data/app/controllers/lady_josephine/editor_controller.rb +40 -0
  24. data/app/controllers/lady_josephine/images_controller.rb +26 -0
  25. data/app/helpers/lady_josephine/helper.rb +25 -0
  26. data/app/helpers/lady_josephine/sir_trevor_helper.rb +172 -0
  27. data/app/models/lady_josephine/concerns/model.rb +29 -0
  28. data/app/models/lady_josephine/concerns/pingable.rb +28 -0
  29. data/app/models/lady_josephine/concerns/server_uuid.rb +24 -0
  30. data/app/models/lady_josephine/concerns/sir_trevor_images.rb +38 -0
  31. data/app/models/lady_josephine/image.rb +41 -0
  32. data/app/uploader/lady_josephine/base_uploader.rb +47 -0
  33. data/app/uploader/lady_josephine/image_uploader.rb +149 -0
  34. data/app/views/lady_josephine/blocks/_audio_block.haml +2 -0
  35. data/app/views/lady_josephine/blocks/_definition_block.haml +4 -0
  36. data/app/views/lady_josephine/blocks/_divider_block.haml +2 -0
  37. data/app/views/lady_josephine/blocks/_extended_image_block.haml +63 -0
  38. data/app/views/lady_josephine/blocks/_extended_quote_block.haml +5 -0
  39. data/app/views/lady_josephine/blocks/_extended_tweet_block.haml +2 -0
  40. data/app/views/lady_josephine/blocks/_facebook_post_block.haml +2 -0
  41. data/app/views/lady_josephine/blocks/_heading_block.haml +2 -0
  42. data/app/views/lady_josephine/blocks/_html_block.haml +1 -0
  43. data/app/views/lady_josephine/blocks/_instagram_block.haml +2 -0
  44. data/app/views/lady_josephine/blocks/_list_block.haml +3 -0
  45. data/app/views/lady_josephine/blocks/_quote_block.haml +5 -0
  46. data/app/views/lady_josephine/blocks/_text_block.html.haml +2 -0
  47. data/app/views/lady_josephine/blocks/_video_block.haml +9 -0
  48. data/config/routes.rb +9 -0
  49. data/db/migrate/20160222151500_lady_josephine_image.rb +18 -0
  50. data/lib/generators/lady_josephine_migration/USAGE +9 -0
  51. data/lib/generators/lady_josephine_migration/lady_josephine_migration_generator.rb +17 -0
  52. data/lib/generators/lady_josephine_migration/templates/migration.rb +9 -0
  53. data/lib/lady_josephine.rb +18 -0
  54. data/lib/lady_josephine/engine.rb +18 -0
  55. data/lib/lady_josephine/redcarpet/custom_markdown_formatter.rb +63 -0
  56. data/lib/lady_josephine/renderer/sir_trevor_renderer.rb +16 -0
  57. data/lib/lady_josephine/version.rb +3 -0
  58. data/lib/lady_josephine/whitelist.rb +26 -0
  59. data/lib/tasks/lady_josephine_tasks.rake +4 -0
  60. data/spec/controllers/lady_josephine/editor_controller_spec.rb +58 -0
  61. data/spec/dummy/README.rdoc +28 -0
  62. data/spec/dummy/Rakefile +6 -0
  63. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  64. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  65. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  66. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  67. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  68. data/spec/dummy/bin/bundle +3 -0
  69. data/spec/dummy/bin/rails +4 -0
  70. data/spec/dummy/bin/rake +4 -0
  71. data/spec/dummy/bin/setup +29 -0
  72. data/spec/dummy/config.ru +4 -0
  73. data/spec/dummy/config/application.rb +26 -0
  74. data/spec/dummy/config/boot.rb +5 -0
  75. data/spec/dummy/config/database.yml +25 -0
  76. data/spec/dummy/config/environment.rb +5 -0
  77. data/spec/dummy/config/environments/development.rb +41 -0
  78. data/spec/dummy/config/environments/production.rb +79 -0
  79. data/spec/dummy/config/environments/test.rb +42 -0
  80. data/spec/dummy/config/initializers/assets.rb +11 -0
  81. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  82. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  83. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  84. data/spec/dummy/config/initializers/inflections.rb +16 -0
  85. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  86. data/spec/dummy/config/initializers/session_store.rb +3 -0
  87. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  88. data/spec/dummy/config/locales/en.yml +23 -0
  89. data/spec/dummy/config/routes.rb +4 -0
  90. data/spec/dummy/config/secrets.yml +22 -0
  91. data/spec/dummy/db/development.sqlite3 +0 -0
  92. data/spec/dummy/db/schema.rb +16 -0
  93. data/spec/dummy/db/test.sqlite3 +0 -0
  94. data/spec/dummy/log/bla +0 -0
  95. data/spec/dummy/public/404.html +67 -0
  96. data/spec/dummy/public/422.html +67 -0
  97. data/spec/dummy/public/500.html +66 -0
  98. data/spec/dummy/public/favicon.ico +0 -0
  99. data/spec/spec_helper.rb +17 -0
  100. data/vendor/assets/components/Eventable/README.md +12 -0
  101. data/vendor/assets/components/Eventable/bower.json +10 -0
  102. data/vendor/assets/components/Eventable/component.json +11 -0
  103. data/vendor/assets/components/Eventable/eventable.js +207 -0
  104. data/vendor/assets/components/Eventable/package.json +15 -0
  105. data/vendor/assets/components/jquery-autosize/bower.json +30 -0
  106. data/vendor/assets/components/jquery-autosize/demo.html +36 -0
  107. data/vendor/assets/components/jquery-autosize/jquery.autosize.js +273 -0
  108. data/vendor/assets/components/jquery-autosize/jquery.autosize.min.js +6 -0
  109. data/vendor/assets/components/jquery-autosize/package.json +32 -0
  110. data/vendor/assets/components/jquery-autosize/readme.md +216 -0
  111. data/vendor/assets/components/jquery/AUTHORS.txt +163 -0
  112. data/vendor/assets/components/jquery/CONTRIBUTING.md +216 -0
  113. data/vendor/assets/components/jquery/Gruntfile.js +496 -0
  114. data/vendor/assets/components/jquery/MIT-LICENSE.txt +21 -0
  115. data/vendor/assets/components/jquery/README.md +415 -0
  116. data/vendor/assets/components/jquery/build/release-notes.js +59 -0
  117. data/vendor/assets/components/jquery/build/release.js +246 -0
  118. data/vendor/assets/components/jquery/component.json +13 -0
  119. data/vendor/assets/components/jquery/composer.json +35 -0
  120. data/vendor/assets/components/jquery/jquery-migrate.js +496 -0
  121. data/vendor/assets/components/jquery/jquery-migrate.min.js +3 -0
  122. data/vendor/assets/components/jquery/jquery.js +9597 -0
  123. data/vendor/assets/components/jquery/jquery.min.js +5 -0
  124. data/vendor/assets/components/jquery/jquery.min.map +1 -0
  125. data/vendor/assets/components/jquery/package.json +39 -0
  126. data/vendor/assets/components/jquery/speed/benchmark.js +15 -0
  127. data/vendor/assets/components/jquery/speed/benchmarker.css +65 -0
  128. data/vendor/assets/components/jquery/speed/benchmarker.js +181 -0
  129. data/vendor/assets/components/jquery/speed/closest.html +39 -0
  130. data/vendor/assets/components/jquery/speed/css.html +82 -0
  131. data/vendor/assets/components/jquery/speed/event.html +58 -0
  132. data/vendor/assets/components/jquery/speed/filter.html +183 -0
  133. data/vendor/assets/components/jquery/speed/find.html +179 -0
  134. data/vendor/assets/components/jquery/speed/index.html +72 -0
  135. data/vendor/assets/components/jquery/speed/jquery-basis.js +6238 -0
  136. data/vendor/assets/components/jquery/speed/slice.vs.concat.html +47 -0
  137. data/vendor/assets/components/jquery/src/ajax.js +851 -0
  138. data/vendor/assets/components/jquery/src/ajax/jsonp.js +80 -0
  139. data/vendor/assets/components/jquery/src/ajax/script.js +86 -0
  140. data/vendor/assets/components/jquery/src/ajax/xhr.js +207 -0
  141. data/vendor/assets/components/jquery/src/attributes.js +661 -0
  142. data/vendor/assets/components/jquery/src/callbacks.js +196 -0
  143. data/vendor/assets/components/jquery/src/core.js +949 -0
  144. data/vendor/assets/components/jquery/src/css.js +679 -0
  145. data/vendor/assets/components/jquery/src/data.js +340 -0
  146. data/vendor/assets/components/jquery/src/deferred.js +141 -0
  147. data/vendor/assets/components/jquery/src/deprecated.js +4 -0
  148. data/vendor/assets/components/jquery/src/dimensions.js +41 -0
  149. data/vendor/assets/components/jquery/src/effects.js +730 -0
  150. data/vendor/assets/components/jquery/src/event-alias.js +15 -0
  151. data/vendor/assets/components/jquery/src/event.js +991 -0
  152. data/vendor/assets/components/jquery/src/exports.js +18 -0
  153. data/vendor/assets/components/jquery/src/intro.js +20 -0
  154. data/vendor/assets/components/jquery/src/manipulation.js +796 -0
  155. data/vendor/assets/components/jquery/src/offset.js +169 -0
  156. data/vendor/assets/components/jquery/src/outro.js +2 -0
  157. data/vendor/assets/components/jquery/src/queue.js +147 -0
  158. data/vendor/assets/components/jquery/src/serialize.js +99 -0
  159. data/vendor/assets/components/jquery/src/sizzle-jquery.js +9 -0
  160. data/vendor/assets/components/jquery/src/support.js +241 -0
  161. data/vendor/assets/components/jquery/src/traversing.js +275 -0
  162. data/vendor/assets/components/jquery/test/csp.php +16 -0
  163. data/vendor/assets/components/jquery/test/data/1x1.jpg +0 -0
  164. data/vendor/assets/components/jquery/test/data/ajax/unreleasedXHR.html +25 -0
  165. data/vendor/assets/components/jquery/test/data/atom+xml.php +4 -0
  166. data/vendor/assets/components/jquery/test/data/badcall.js +1 -0
  167. data/vendor/assets/components/jquery/test/data/badjson.js +1 -0
  168. data/vendor/assets/components/jquery/test/data/cleanScript.html +10 -0
  169. data/vendor/assets/components/jquery/test/data/core/cc_on.html +22 -0
  170. data/vendor/assets/components/jquery/test/data/dashboard.xml +11 -0
  171. data/vendor/assets/components/jquery/test/data/dimensions/documentLarge.html +17 -0
  172. data/vendor/assets/components/jquery/test/data/dimensions/documentSmall.html +21 -0
  173. data/vendor/assets/components/jquery/test/data/echoData.php +1 -0
  174. data/vendor/assets/components/jquery/test/data/echoQuery.php +1 -0
  175. data/vendor/assets/components/jquery/test/data/errorWithText.php +5 -0
  176. data/vendor/assets/components/jquery/test/data/etag.php +21 -0
  177. data/vendor/assets/components/jquery/test/data/evalScript.php +1 -0
  178. data/vendor/assets/components/jquery/test/data/event/longLoadScript.php +4 -0
  179. data/vendor/assets/components/jquery/test/data/event/promiseReady.html +17 -0
  180. data/vendor/assets/components/jquery/test/data/event/syncReady.html +23 -0
  181. data/vendor/assets/components/jquery/test/data/headers.php +18 -0
  182. data/vendor/assets/components/jquery/test/data/if_modified_since.php +20 -0
  183. data/vendor/assets/components/jquery/test/data/iframe.html +8 -0
  184. data/vendor/assets/components/jquery/test/data/jquery-1.8.2.ajax_xhr.min.js +2 -0
  185. data/vendor/assets/components/jquery/test/data/json.php +13 -0
  186. data/vendor/assets/components/jquery/test/data/json_obj.js +1 -0
  187. data/vendor/assets/components/jquery/test/data/jsonp.php +14 -0
  188. data/vendor/assets/components/jquery/test/data/manipulation/iframe-denied.html +36 -0
  189. data/vendor/assets/components/jquery/test/data/name.html +1 -0
  190. data/vendor/assets/components/jquery/test/data/name.php +24 -0
  191. data/vendor/assets/components/jquery/test/data/nocontent.php +5 -0
  192. data/vendor/assets/components/jquery/test/data/offset/absolute.html +41 -0
  193. data/vendor/assets/components/jquery/test/data/offset/body.html +26 -0
  194. data/vendor/assets/components/jquery/test/data/offset/fixed.html +34 -0
  195. data/vendor/assets/components/jquery/test/data/offset/relative.html +31 -0
  196. data/vendor/assets/components/jquery/test/data/offset/scroll.html +39 -0
  197. data/vendor/assets/components/jquery/test/data/offset/static.html +31 -0
  198. data/vendor/assets/components/jquery/test/data/offset/table.html +43 -0
  199. data/vendor/assets/components/jquery/test/data/params_html.php +12 -0
  200. data/vendor/assets/components/jquery/test/data/readywaitasset.js +1 -0
  201. data/vendor/assets/components/jquery/test/data/readywaitloader.js +25 -0
  202. data/vendor/assets/components/jquery/test/data/script.php +11 -0
  203. data/vendor/assets/components/jquery/test/data/selector/html5_selector.html +114 -0
  204. data/vendor/assets/components/jquery/test/data/selector/sizzle_cache.html +21 -0
  205. data/vendor/assets/components/jquery/test/data/statusText.php +5 -0
  206. data/vendor/assets/components/jquery/test/data/support/bodyBackground.html +28 -0
  207. data/vendor/assets/components/jquery/test/data/support/shrinkWrapBlocks.html +23 -0
  208. data/vendor/assets/components/jquery/test/data/support/testElementCrash.html +17 -0
  209. data/vendor/assets/components/jquery/test/data/test.html +7 -0
  210. data/vendor/assets/components/jquery/test/data/test.js +3 -0
  211. data/vendor/assets/components/jquery/test/data/test.php +7 -0
  212. data/vendor/assets/components/jquery/test/data/test2.html +5 -0
  213. data/vendor/assets/components/jquery/test/data/test3.html +3 -0
  214. data/vendor/assets/components/jquery/test/data/testinit.js +269 -0
  215. data/vendor/assets/components/jquery/test/data/testrunner.js +368 -0
  216. data/vendor/assets/components/jquery/test/data/testsuite.css +155 -0
  217. data/vendor/assets/components/jquery/test/data/text.php +12 -0
  218. data/vendor/assets/components/jquery/test/data/ua.txt +272 -0
  219. data/vendor/assets/components/jquery/test/data/with_fries.xml +25 -0
  220. data/vendor/assets/components/jquery/test/data/with_fries_over_jsonp.php +7 -0
  221. data/vendor/assets/components/jquery/test/delegatetest.html +228 -0
  222. data/vendor/assets/components/jquery/test/hovertest.html +158 -0
  223. data/vendor/assets/components/jquery/test/index.html +330 -0
  224. data/vendor/assets/components/jquery/test/localfile.html +75 -0
  225. data/vendor/assets/components/jquery/test/networkerror.html +84 -0
  226. data/vendor/assets/components/jquery/test/polluted.php +110 -0
  227. data/vendor/assets/components/jquery/test/readywait.html +70 -0
  228. data/vendor/assets/components/jquery/test/unit/ajax.js +1971 -0
  229. data/vendor/assets/components/jquery/test/unit/attributes.js +1332 -0
  230. data/vendor/assets/components/jquery/test/unit/callbacks.js +326 -0
  231. data/vendor/assets/components/jquery/test/unit/core.js +1332 -0
  232. data/vendor/assets/components/jquery/test/unit/css.js +1036 -0
  233. data/vendor/assets/components/jquery/test/unit/data.js +636 -0
  234. data/vendor/assets/components/jquery/test/unit/deferred.js +440 -0
  235. data/vendor/assets/components/jquery/test/unit/deprecated.js +1 -0
  236. data/vendor/assets/components/jquery/test/unit/dimensions.js +461 -0
  237. data/vendor/assets/components/jquery/test/unit/effects.js +2050 -0
  238. data/vendor/assets/components/jquery/test/unit/event.js +2690 -0
  239. data/vendor/assets/components/jquery/test/unit/exports.js +7 -0
  240. data/vendor/assets/components/jquery/test/unit/manipulation.js +2242 -0
  241. data/vendor/assets/components/jquery/test/unit/offset.js +549 -0
  242. data/vendor/assets/components/jquery/test/unit/queue.js +316 -0
  243. data/vendor/assets/components/jquery/test/unit/selector.js +185 -0
  244. data/vendor/assets/components/jquery/test/unit/serialize.js +146 -0
  245. data/vendor/assets/components/jquery/test/unit/support.js +384 -0
  246. data/vendor/assets/components/jquery/test/unit/traversing.js +667 -0
  247. data/vendor/assets/components/jquery/test/xhtml.php +5 -0
  248. data/vendor/assets/components/sir-trevor-js/CHANGELOG.md +44 -0
  249. data/vendor/assets/components/sir-trevor-js/Gemfile +3 -0
  250. data/vendor/assets/components/sir-trevor-js/Gemfile.lock +10 -0
  251. data/vendor/assets/components/sir-trevor-js/Gruntfile.js +109 -0
  252. data/vendor/assets/components/sir-trevor-js/MIT-LICENCE +20 -0
  253. data/vendor/assets/components/sir-trevor-js/Readme.md +84 -0
  254. data/vendor/assets/components/sir-trevor-js/bower.json +21 -0
  255. data/vendor/assets/components/sir-trevor-js/component.json +42 -0
  256. data/vendor/assets/components/sir-trevor-js/contributing.md +74 -0
  257. data/vendor/assets/components/sir-trevor-js/examples-component/component.json +14 -0
  258. data/vendor/assets/components/sir-trevor-js/examples-component/index.html +33 -0
  259. data/vendor/assets/components/sir-trevor-js/examples-component/index.js +29 -0
  260. data/vendor/assets/components/sir-trevor-js/examples-component/javascript/example_block.js +203 -0
  261. data/vendor/assets/components/sir-trevor-js/examples-component/javascript/limit_chars.js +46 -0
  262. data/vendor/assets/components/sir-trevor-js/examples-component/sir-trevor.gif +0 -0
  263. data/vendor/assets/components/sir-trevor-js/locales/cn.js +51 -0
  264. data/vendor/assets/components/sir-trevor-js/locales/de.js +51 -0
  265. data/vendor/assets/components/sir-trevor-js/locales/es.js +51 -0
  266. data/vendor/assets/components/sir-trevor-js/locales/fi.js +51 -0
  267. data/vendor/assets/components/sir-trevor-js/locales/fr.js +51 -0
  268. data/vendor/assets/components/sir-trevor-js/locales/pt.js +52 -0
  269. data/vendor/assets/components/sir-trevor-js/package.json +23 -0
  270. data/vendor/assets/components/sir-trevor-js/sir-trevor-icons.css +6 -0
  271. data/vendor/assets/components/sir-trevor-js/sir-trevor.css +393 -0
  272. data/vendor/assets/components/sir-trevor-js/sir-trevor.css.map +7 -0
  273. data/vendor/assets/components/sir-trevor-js/sir-trevor.js +5481 -0
  274. data/vendor/assets/components/sir-trevor-js/sir-trevor.min.js +13 -0
  275. data/vendor/assets/components/underscore/CNAME +1 -0
  276. data/vendor/assets/components/underscore/CONTRIBUTING.md +9 -0
  277. data/vendor/assets/components/underscore/LICENSE +22 -0
  278. data/vendor/assets/components/underscore/README.md +19 -0
  279. data/vendor/assets/components/underscore/Rakefile +10 -0
  280. data/vendor/assets/components/underscore/docs/docco.css +192 -0
  281. data/vendor/assets/components/underscore/docs/favicon.ico +0 -0
  282. data/vendor/assets/components/underscore/docs/images/background.png +0 -0
  283. data/vendor/assets/components/underscore/docs/images/underscore.png +0 -0
  284. data/vendor/assets/components/underscore/docs/underscore.html +823 -0
  285. data/vendor/assets/components/underscore/favicon.ico +0 -0
  286. data/vendor/assets/components/underscore/index.html +2467 -0
  287. data/vendor/assets/components/underscore/index.js +1 -0
  288. data/vendor/assets/components/underscore/package.json +16 -0
  289. data/vendor/assets/components/underscore/test/arrays.js +200 -0
  290. data/vendor/assets/components/underscore/test/chaining.js +59 -0
  291. data/vendor/assets/components/underscore/test/collections.js +453 -0
  292. data/vendor/assets/components/underscore/test/functions.js +265 -0
  293. data/vendor/assets/components/underscore/test/index.html +44 -0
  294. data/vendor/assets/components/underscore/test/objects.js +570 -0
  295. data/vendor/assets/components/underscore/test/speed.js +75 -0
  296. data/vendor/assets/components/underscore/test/utility.js +266 -0
  297. data/vendor/assets/components/underscore/test/vendor/jquery.js +9404 -0
  298. data/vendor/assets/components/underscore/test/vendor/jslitmus.js +670 -0
  299. data/vendor/assets/components/underscore/test/vendor/qunit.css +235 -0
  300. data/vendor/assets/components/underscore/test/vendor/qunit.js +1977 -0
  301. data/vendor/assets/components/underscore/test/vendor/runner.js +98 -0
  302. data/vendor/assets/components/underscore/underscore-min.js +1 -0
  303. data/vendor/assets/components/underscore/underscore.js +1226 -0
  304. metadata +473 -0
@@ -0,0 +1,368 @@
1
+ /**
2
+ * Allow the test suite to run with other libs or jQuery's.
3
+ */
4
+ jQuery.noConflict();
5
+
6
+ // For checking globals pollution despite auto-created globals in various environments
7
+ jQuery.each( [ jQuery.expando, "getInterface", "Packages", "java", "netscape" ], function( i, name ) {
8
+ window[ name ] = window[ name ];
9
+ });
10
+
11
+ // Expose Sizzle for Sizzle's selector tests
12
+ // We remove Sizzle's globalization in jQuery
13
+ var Sizzle = Sizzle || jQuery.find;
14
+
15
+ // Allow subprojects to test against their own fixtures
16
+ var qunitModule = QUnit.module,
17
+ qunitTest = QUnit.test;
18
+
19
+ function testSubproject( label, url, risTests ) {
20
+ var sub, fixture, fixtureHTML,
21
+ fixtureReplaced = false;
22
+
23
+ // Don't let subproject tests jump the gun
24
+ QUnit.config.reorder = false;
25
+
26
+ // Create module
27
+ module( label );
28
+
29
+ // Duckpunch QUnit
30
+ // TODO restore parent fixture on teardown to support reordering
31
+ module = QUnit.module = function( name ) {
32
+ var args = arguments;
33
+
34
+ // Remember subproject-scoped module name
35
+ sub = name;
36
+
37
+ // Override
38
+ args[0] = label;
39
+ return qunitModule.apply( this, args );
40
+ };
41
+ test = function( name ) {
42
+ var args = arguments,
43
+ i = args.length - 1;
44
+
45
+ // Prepend subproject-scoped module name to test name
46
+ args[0] = sub + ": " + name;
47
+
48
+ // Find test function and wrap to require subproject fixture
49
+ for ( ; i >= 0; i-- ) {
50
+ if ( originaljQuery.isFunction( args[i] ) ) {
51
+ args[i] = requireFixture( args[i] );
52
+ break;
53
+ }
54
+ }
55
+
56
+ return qunitTest.apply( this, args );
57
+ };
58
+
59
+ // Load tests and fixture from subproject
60
+ // Test order matters, so we must be synchronous and throw an error on load failure
61
+ originaljQuery.ajax( url, {
62
+ async: false,
63
+ dataType: "html",
64
+ error: function( jqXHR, status ) {
65
+ throw new Error( "Could not load: " + url + " (" + status + ")" );
66
+ },
67
+ success: function( data, status, jqXHR ) {
68
+ var page = originaljQuery.parseHTML(
69
+ // replace html/head with dummy elements so they are represented in the DOM
70
+ ( data || "" ).replace( /<\/?((!DOCTYPE|html|head)\b.*?)>/gi, "[$1]" ),
71
+ document,
72
+ true
73
+ );
74
+
75
+ if ( !page || !page.length ) {
76
+ this.error( jqXHR, "no data" );
77
+ }
78
+ page = originaljQuery( page );
79
+
80
+ // Include subproject tests
81
+ page.filter("script[src]").add( page.find("script[src]") ).each(function() {
82
+ var src = originaljQuery( this ).attr("src"),
83
+ html = "<script src='" + url + src + "'></script>";
84
+ if ( risTests.test( src ) ) {
85
+ if ( originaljQuery.isReady ) {
86
+ originaljQuery("head").first().append( html );
87
+ } else {
88
+ document.write( html );
89
+ }
90
+ }
91
+ });
92
+
93
+ // Get the fixture, including content outside of #qunit-fixture
94
+ fixture = page.find("[id='qunit-fixture']");
95
+ fixtureHTML = fixture.html();
96
+ fixture.empty();
97
+ while ( fixture.length && !fixture.prevAll("[id='qunit']").length ) {
98
+ fixture = fixture.parent();
99
+ }
100
+ fixture = fixture.add( fixture.nextAll() );
101
+ }
102
+ });
103
+
104
+ function requireFixture( fn ) {
105
+ return function() {
106
+ if ( !fixtureReplaced ) {
107
+ // Make sure that we retrieved a fixture for the subproject
108
+ if ( !fixture.length ) {
109
+ ok( false, "Found subproject fixture" );
110
+ return;
111
+ }
112
+
113
+ // Replace the current fixture, including content outside of #qunit-fixture
114
+ var oldFixture = originaljQuery("#qunit-fixture");
115
+ while ( oldFixture.length && !oldFixture.prevAll("[id='qunit']").length ) {
116
+ oldFixture = oldFixture.parent();
117
+ }
118
+ oldFixture.nextAll().remove();
119
+ oldFixture.replaceWith( fixture );
120
+
121
+ // WARNING: UNDOCUMENTED INTERFACE
122
+ QUnit.config.fixture = fixtureHTML;
123
+ QUnit.reset();
124
+ if ( originaljQuery("#qunit-fixture").html() !== fixtureHTML ) {
125
+ ok( false, "Copied subproject fixture" );
126
+ return;
127
+ }
128
+
129
+ fixtureReplaced = true;
130
+ }
131
+
132
+ fn.apply( this, arguments );
133
+ };
134
+ }
135
+ }
136
+
137
+ // Register globals for cleanup and the cleanup code itself
138
+ // Explanation at http://perfectionkills.com/understanding-delete/#ie_bugs
139
+ var Globals = (function() {
140
+ var globals = {};
141
+ return {
142
+ register: function( name ) {
143
+ globals[ name ] = true;
144
+ jQuery.globalEval( "var " + name + " = undefined;" );
145
+ },
146
+ cleanup: function() {
147
+ var name,
148
+ current = globals;
149
+ globals = {};
150
+ for ( name in current ) {
151
+ jQuery.globalEval( "try { " +
152
+ "delete " + ( jQuery.support.deleteExpando ? "window['" + name + "']" : name ) +
153
+ "; } catch( x ) {}" );
154
+ }
155
+ }
156
+ };
157
+ })();
158
+
159
+ // Sandbox start for great justice
160
+ (function() {
161
+ var oldStart = window.start;
162
+ window.start = function() {
163
+ oldStart();
164
+ };
165
+ })();
166
+
167
+ /**
168
+ * QUnit hooks
169
+ */
170
+ (function() {
171
+ // Store the old counts so that we only assert on tests that have actually leaked,
172
+ // instead of asserting every time a test has leaked sometime in the past
173
+ var oldCacheLength = 0,
174
+ oldFragmentsLength = 0,
175
+ oldTimersLength = 0,
176
+ oldActive = 0,
177
+
178
+ expectedDataKeys = {},
179
+
180
+ reset = QUnit.reset,
181
+ ajaxSettings = jQuery.ajaxSettings;
182
+
183
+ function keys(o) {
184
+ var ret, key;
185
+ if ( Object.keys ) {
186
+ ret = Object.keys( o );
187
+ } else {
188
+ ret = [];
189
+ for ( key in o ) {
190
+ ret.push( key );
191
+ }
192
+ }
193
+ ret.sort();
194
+ return ret;
195
+ }
196
+
197
+ /**
198
+ * @param {jQuery|HTMLElement|Object|Array} elems Target (or array of targets) for jQuery.data.
199
+ * @param {string} key
200
+ */
201
+ QUnit.expectJqData = function( elems, key ) {
202
+ var i, elem, expando;
203
+ QUnit.current_testEnvironment.checkJqData = true;
204
+
205
+ if ( elems.jquery && elems.toArray ) {
206
+ elems = elems.toArray();
207
+ }
208
+ if ( !jQuery.isArray( elems ) ) {
209
+ elems = [ elems ];
210
+ }
211
+
212
+ for ( i = 0; i < elems.length; i++ ) {
213
+ elem = elems[i];
214
+
215
+ // jQuery.data only stores data for nodes in jQuery.cache,
216
+ // for other data targets the data is stored in the object itself,
217
+ // in that case we can't test that target for memory leaks.
218
+ // But we don't have to since in that case the data will/must will
219
+ // be available as long as the object is not garbage collected by
220
+ // the js engine, and when it is, the data will be removed with it.
221
+ if ( !elem.nodeType ) {
222
+ // Fixes false positives for dataTests(window), dataTests({}).
223
+ continue;
224
+ }
225
+
226
+ expando = elem[ jQuery.expando ];
227
+
228
+ if ( expando === undefined ) {
229
+ // In this case the element exists fine, but
230
+ // jQuery.data (or internal data) was never (in)directly
231
+ // called.
232
+ // Since this method was called it means some data was
233
+ // expected to be found, but since there is nothing, fail early
234
+ // (instead of in teardown).
235
+ notStrictEqual( expando, undefined, "Target for expectJqData must have an expando, for else there can be no data to expect." );
236
+ } else {
237
+ if ( expectedDataKeys[expando] ) {
238
+ expectedDataKeys[expando].push( key );
239
+ } else {
240
+ expectedDataKeys[expando] = [ key ];
241
+ }
242
+ }
243
+ }
244
+ };
245
+ QUnit.config.urlConfig.push( {
246
+ id: "jqdata",
247
+ label: "Always check jQuery.data",
248
+ tooltip: "Trigger QUnit.expectJqData detection for all tests instead of just the ones that call it"
249
+ } );
250
+
251
+ /**
252
+ * Ensures that tests have cleaned up properly after themselves. Should be passed as the
253
+ * teardown function on all modules' lifecycle object.
254
+ */
255
+ this.moduleTeardown = function() {
256
+ var i,
257
+ expectedKeys, actualKeys,
258
+ fragmentsLength = 0,
259
+ cacheLength = 0;
260
+
261
+ // Only look for jQuery data problems if this test actually
262
+ // provided some information to compare against.
263
+ if ( QUnit.urlParams.jqdata || this.checkJqData ) {
264
+ for ( i in jQuery.cache ) {
265
+ expectedKeys = expectedDataKeys[i];
266
+ actualKeys = jQuery.cache[i] ? keys( jQuery.cache[i] ) : jQuery.cache[i];
267
+ if ( !QUnit.equiv( expectedKeys, actualKeys ) ) {
268
+ deepEqual( actualKeys, expectedKeys, "Expected keys exist in jQuery.cache" );
269
+ }
270
+ delete jQuery.cache[i];
271
+ delete expectedDataKeys[i];
272
+ }
273
+ // In case it was removed from cache before (or never there in the first place)
274
+ for ( i in expectedDataKeys ) {
275
+ deepEqual( expectedDataKeys[i], undefined, "No unexpected keys were left in jQuery.cache (#" + i + ")" );
276
+ delete expectedDataKeys[i];
277
+ }
278
+ }
279
+
280
+ // Reset data register
281
+ expectedDataKeys = {};
282
+
283
+ // Allow QUnit.reset to clean up any attached elements before checking for leaks
284
+ QUnit.reset();
285
+
286
+ for ( i in jQuery.cache ) {
287
+ ++cacheLength;
288
+ }
289
+
290
+ jQuery.fragments = {};
291
+
292
+ for ( i in jQuery.fragments ) {
293
+ ++fragmentsLength;
294
+ }
295
+
296
+ // Because QUnit doesn't have a mechanism for retrieving the number of expected assertions for a test,
297
+ // if we unconditionally assert any of these, the test will fail with too many assertions :|
298
+ if ( cacheLength !== oldCacheLength ) {
299
+ equal( cacheLength, oldCacheLength, "No unit tests leak memory in jQuery.cache" );
300
+ oldCacheLength = cacheLength;
301
+ }
302
+ if ( fragmentsLength !== oldFragmentsLength ) {
303
+ equal( fragmentsLength, oldFragmentsLength, "No unit tests leak memory in jQuery.fragments" );
304
+ oldFragmentsLength = fragmentsLength;
305
+ }
306
+ if ( jQuery.timers && jQuery.timers.length !== oldTimersLength ) {
307
+ equal( jQuery.timers.length, oldTimersLength, "No timers are still running" );
308
+ oldTimersLength = jQuery.timers.length;
309
+ }
310
+ if ( jQuery.active !== undefined && jQuery.active !== oldActive ) {
311
+ equal( jQuery.active, 0, "No AJAX requests are still active" );
312
+ if ( ajaxTest.abort ) {
313
+ ajaxTest.abort("active requests");
314
+ }
315
+ oldActive = jQuery.active;
316
+ }
317
+ };
318
+
319
+ QUnit.done(function() {
320
+ // Remove our own fixtures outside #qunit-fixture
321
+ jQuery("#qunit ~ *").remove();
322
+ });
323
+
324
+ // jQuery-specific QUnit.reset
325
+ QUnit.reset = function() {
326
+
327
+ // Ensure jQuery events and data on the fixture are properly removed
328
+ jQuery("#qunit-fixture").empty();
329
+
330
+ // Reset internal jQuery state
331
+ jQuery.event.global = {};
332
+ if ( ajaxSettings ) {
333
+ jQuery.ajaxSettings = jQuery.extend( true, {}, ajaxSettings );
334
+ } else {
335
+ delete jQuery.ajaxSettings;
336
+ }
337
+
338
+ // Cleanup globals
339
+ Globals.cleanup();
340
+
341
+ // Let QUnit reset the fixture
342
+ reset.apply( this, arguments );
343
+ };
344
+ })();
345
+
346
+ /**
347
+ * QUnit configuration
348
+ */
349
+ // Max time for stop() and asyncTest() until it aborts test
350
+ // and start()'s the next test.
351
+ QUnit.config.testTimeout = 20 * 1000; // 20 seconds
352
+
353
+ // Enforce an "expect" argument or expect() call in all test bodies.
354
+ QUnit.config.requireExpects = true;
355
+
356
+ /**
357
+ * Load the TestSwarm listener if swarmURL is in the address.
358
+ */
359
+ (function() {
360
+ var url = window.location.search;
361
+ url = decodeURIComponent( url.slice( url.indexOf("swarmURL=") + "swarmURL=".length ) );
362
+
363
+ if ( !url || url.indexOf("http") !== 0 ) {
364
+ return;
365
+ }
366
+
367
+ document.write("<scr" + "ipt src='http://swarm.jquery.org/js/inject.js?" + (new Date()).getTime() + "'></scr" + "ipt>");
368
+ })();
@@ -0,0 +1,155 @@
1
+ /* for testing opacity set in styles in IE */
2
+ ol#empty {
3
+ opacity: 0;
4
+ filter:Alpha(opacity=0) progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffff0000', EndColorStr='#ffffffff');
5
+ }
6
+
7
+ div#fx-tests h4 {
8
+ background: red;
9
+ }
10
+
11
+ div#fx-tests h4.pass {
12
+ background: green;
13
+ }
14
+
15
+ div#fx-tests div.box {
16
+ background: red;
17
+ overflow: hidden;
18
+ border: 2px solid #000;
19
+ }
20
+
21
+ div#fx-tests div.overflow {
22
+ overflow: visible;
23
+ }
24
+
25
+ div.inline {
26
+ display: inline;
27
+ }
28
+
29
+ div.autoheight {
30
+ height: auto;
31
+ }
32
+
33
+ div.autowidth {
34
+ width: auto;
35
+ }
36
+
37
+ div.autoopacity {
38
+ opacity: auto;
39
+ }
40
+
41
+ div.largewidth {
42
+ width: 100px;
43
+ }
44
+
45
+ div.largeheight {
46
+ height: 100px;
47
+ }
48
+
49
+ div.largeopacity {
50
+ filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);
51
+ }
52
+
53
+ div.medwidth {
54
+ width: 50px;
55
+ }
56
+
57
+ div.medheight {
58
+ height: 50px;
59
+ }
60
+
61
+ div.medopacity {
62
+ opacity: 0.5;
63
+ filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50);
64
+ }
65
+
66
+ div.nowidth {
67
+ width: 0px;
68
+ }
69
+
70
+ div.noheight {
71
+ height: 0px;
72
+ }
73
+
74
+ div.noopacity {
75
+ opacity: 0;
76
+ filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
77
+ }
78
+
79
+ div.hidden {
80
+ display: none;
81
+ }
82
+
83
+ div#fx-tests div.widewidth {
84
+ background-repeat: repeat-x;
85
+ }
86
+
87
+ div#fx-tests div.wideheight {
88
+ background-repeat: repeat-y;
89
+ }
90
+
91
+ div#fx-tests div.widewidth.wideheight {
92
+ background-repeat: repeat;
93
+ }
94
+
95
+ div#fx-tests div.noback {
96
+ background-image: none;
97
+ }
98
+
99
+ .chain-test,
100
+ .chain-test div {
101
+ width: 100px;
102
+ height: 20px;
103
+ position: relative;
104
+ float: left;
105
+ }
106
+ .chain-test div {
107
+ position: absolute;
108
+ top: 0;
109
+ left: 0;
110
+ }
111
+
112
+ .chain-test {
113
+ background: red;
114
+ }
115
+ .chain-test div {
116
+ background: green;
117
+ }
118
+
119
+ .chain-test-out {
120
+ background: green;
121
+ }
122
+ .chain-test-out div {
123
+ background: red;
124
+ display: none;
125
+ }
126
+
127
+ /* tests to ensure jQuery can determine the native display mode of elements
128
+ that have been set as display: none in stylesheets */
129
+ div#show-tests * { display: none; }
130
+
131
+ #nothiddendiv { font-size: 16px; }
132
+ #nothiddendivchild.em { font-size: 2em; }
133
+ #nothiddendivchild.prct { font-size: 150%; }
134
+
135
+ /* For testing type on vml in IE #7071 */
136
+ v\:oval { behavior:url(#default#VML); display:inline-block; }
137
+
138
+ /* 8099 changes to default styles are read correctly */
139
+ tt { display: none; }
140
+ sup { display: none; }
141
+ dfn { display: none; }
142
+
143
+ /* #9239 Attach a background to the body( avoid crashes in removing the test element in support ) */
144
+ body, div { background: url(http://static.jquery.com/files/rocker/images/logo_jquery_215x53.gif) no-repeat -1000px 0; }
145
+
146
+ /* #6652 REMOVE FILTER:ALPHA(OPACITY=100) AFTER ANIMATION */
147
+ #t6652 div { filter: alpha(opacity=50); }
148
+
149
+ /* #10501 */
150
+ section { background:#f0f; display:block; }
151
+
152
+ /* #11971 */
153
+ #foo { background: url(1x1.jpg) right bottom no-repeat; }
154
+
155
+ #display { display: list-item !important; }