lady_josephine 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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; }