polymer-paper-rails 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (558) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/components/core-animation/README.md +4 -0
  3. data/app/assets/components/core-animation/bower.json +8 -0
  4. data/app/assets/components/core-animation/core-animation-group.html +169 -0
  5. data/app/assets/components/core-animation/core-animation.html +524 -0
  6. data/app/assets/components/core-animation/demo.html +149 -0
  7. data/app/assets/components/core-animation/index.html +22 -0
  8. data/app/assets/components/core-animation/web-animations.html +10 -0
  9. data/app/assets/components/core-collapse/README.md +4 -0
  10. data/app/assets/components/core-collapse/bower.json +7 -0
  11. data/app/assets/components/core-collapse/core-collapse.css +16 -0
  12. data/app/assets/components/core-collapse/core-collapse.html +262 -0
  13. data/app/assets/components/core-collapse/demo.html +93 -0
  14. data/app/assets/components/core-collapse/index.html +22 -0
  15. data/app/assets/components/core-component-page/README.md +6 -0
  16. data/app/assets/components/core-component-page/bowager-logo.png +0 -0
  17. data/app/assets/components/core-component-page/bower.json +8 -0
  18. data/app/assets/components/core-component-page/core-component-page.html +37 -0
  19. data/app/assets/components/core-component-page/demo.html +23 -0
  20. data/app/assets/components/core-component-page/index.html +22 -0
  21. data/app/assets/components/core-drawer-panel/README.md +4 -0
  22. data/app/assets/components/core-drawer-panel/bower.json +8 -0
  23. data/app/assets/components/core-drawer-panel/core-drawer-panel.css +147 -0
  24. data/app/assets/components/core-drawer-panel/core-drawer-panel.html +339 -0
  25. data/app/assets/components/core-drawer-panel/demo.html +73 -0
  26. data/app/assets/components/core-drawer-panel/index.html +22 -0
  27. data/app/assets/components/core-drawer-panel/metadata.html +37 -0
  28. data/app/assets/components/core-elements/README.md +4 -0
  29. data/app/assets/components/core-elements/bower.json +29 -0
  30. data/app/assets/components/core-elements/demo.html +105 -0
  31. data/app/assets/components/core-elements/demos/core-toolbar.html +98 -0
  32. data/app/assets/components/core-elements/metadata.html +23 -0
  33. data/app/assets/components/core-elements/paper-elements.html +37 -0
  34. data/app/assets/components/core-field/README.md +4 -0
  35. data/app/assets/components/core-field/bower.json +7 -0
  36. data/app/assets/components/core-field/core-field.css +38 -0
  37. data/app/assets/components/core-field/core-field.html +35 -0
  38. data/app/assets/components/core-field/demo.html +67 -0
  39. data/app/assets/components/core-field/index.html +22 -0
  40. data/app/assets/components/core-field/metadata.html +26 -0
  41. data/app/assets/components/core-header-panel/README.md +4 -0
  42. data/app/assets/components/core-header-panel/bower.json +7 -0
  43. data/app/assets/components/core-header-panel/core-header-panel.css +75 -0
  44. data/app/assets/components/core-header-panel/core-header-panel.html +225 -0
  45. data/app/assets/components/core-header-panel/demo.html +100 -0
  46. data/app/assets/components/core-header-panel/index.html +23 -0
  47. data/app/assets/components/core-header-panel/metadata.html +37 -0
  48. data/app/assets/components/core-icon/README.md +4 -0
  49. data/app/assets/components/core-icon/bower.json +8 -0
  50. data/app/assets/components/{core/icon → core-icon}/core-icon.css +3 -12
  51. data/app/assets/components/core-icon/core-icon.html +189 -0
  52. data/app/assets/components/core-icon/demo.html +44 -0
  53. data/app/assets/components/core-icon/index.html +22 -0
  54. data/app/assets/components/core-icon/metadata.html +21 -0
  55. data/app/assets/components/core-icon-button/README.md +4 -0
  56. data/app/assets/components/core-icon-button/bower.json +7 -0
  57. data/app/assets/components/core-icon-button/core-icon-button.css +75 -0
  58. data/app/assets/components/core-icon-button/core-icon-button.html +81 -0
  59. data/app/assets/components/core-icon-button/demo.html +35 -0
  60. data/app/assets/components/core-icon-button/index.html +22 -0
  61. data/app/assets/components/core-icon-button/metadata.html +20 -0
  62. data/app/assets/components/core-icons/README.md +4 -0
  63. data/app/assets/components/core-icons/av-icons.html +46 -0
  64. data/app/assets/components/core-icons/bower.json +9 -0
  65. data/app/assets/components/core-icons/communication-icons.html +59 -0
  66. data/app/assets/components/core-icons/core-icons.html +278 -0
  67. data/app/assets/components/core-icons/demo.html +96 -0
  68. data/app/assets/components/core-icons/device-icons.html +59 -0
  69. data/app/assets/components/core-icons/editor-icons.html +67 -0
  70. data/app/assets/components/core-icons/hardware-icons.html +58 -0
  71. data/app/assets/components/core-icons/image-icons.html +146 -0
  72. data/app/assets/components/core-icons/index.html +22 -0
  73. data/app/assets/components/core-icons/maps-icons.html +69 -0
  74. data/app/assets/components/core-icons/notification-icons.html +50 -0
  75. data/app/assets/components/core-icons/png-icons.html +19 -0
  76. data/app/assets/components/core-icons/social-icons.html +52 -0
  77. data/app/assets/components/core-iconset/README.md +4 -0
  78. data/app/assets/components/core-iconset/bower.json +9 -0
  79. data/app/assets/components/{core/iconset/core-iconset.html.erb → core-iconset/core-iconset.html} +29 -24
  80. data/app/assets/components/core-iconset/demo.html +62 -0
  81. data/app/assets/components/core-iconset/index.html +22 -0
  82. data/app/assets/components/core-iconset/my-icons-big.png +0 -0
  83. data/app/assets/components/core-iconset/my-icons.png +0 -0
  84. data/app/assets/components/core-iconset-svg/README.md +4 -0
  85. data/app/assets/components/core-iconset-svg/bower.json +8 -0
  86. data/app/assets/components/core-iconset-svg/core-iconset-svg.html +168 -0
  87. data/app/assets/components/core-iconset-svg/demo.html +66 -0
  88. data/app/assets/components/core-iconset-svg/index.html +22 -0
  89. data/app/assets/components/core-iconset-svg/svg-sample-icons.html +68 -0
  90. data/app/assets/components/core-input/README.md +2 -0
  91. data/app/assets/components/core-input/bower.json +6 -0
  92. data/app/assets/components/core-input/core-input.css +45 -0
  93. data/app/assets/components/{core/input/core-input.html.erb → core-input/core-input.html} +164 -95
  94. data/app/assets/components/core-input/demo.html +142 -0
  95. data/app/assets/components/core-input/index.html +22 -0
  96. data/app/assets/components/core-input/metadata.html +20 -0
  97. data/app/assets/components/core-item/README.md +4 -0
  98. data/app/assets/components/core-item/bower.json +8 -0
  99. data/app/assets/components/core-item/core-item.css +44 -0
  100. data/app/assets/components/core-item/core-item.html +74 -0
  101. data/app/assets/components/core-item/demo.html +92 -0
  102. data/app/assets/components/core-item/index.html +22 -0
  103. data/app/assets/components/core-item/metadata.html +24 -0
  104. data/app/assets/components/core-media-query/README.md +4 -0
  105. data/app/assets/components/core-media-query/bower.json +7 -0
  106. data/app/assets/components/{core/media-query → core-media-query}/core-media-query.html +1 -0
  107. data/app/assets/components/core-media-query/demo.html +44 -0
  108. data/app/assets/components/core-media-query/index.html +22 -0
  109. data/app/assets/components/core-menu/README.md +4 -0
  110. data/app/assets/components/core-menu/bower.json +9 -0
  111. data/app/assets/components/{core/menu → core-menu}/core-menu.css +0 -0
  112. data/app/assets/components/{core/menu/core-menu.html.erb → core-menu/core-menu.html} +3 -3
  113. data/app/assets/components/{core/menu → core-menu}/core-submenu.css +0 -0
  114. data/app/assets/components/{core/menu/core-submenu.html.erb → core-menu/core-submenu.html} +10 -10
  115. data/app/assets/components/core-menu/demo.html +101 -0
  116. data/app/assets/components/core-menu/index.html +22 -0
  117. data/app/assets/components/core-menu/metadata.html +62 -0
  118. data/app/assets/components/core-meta/README.md +4 -0
  119. data/app/assets/components/core-meta/bower.json +7 -0
  120. data/app/assets/components/{core/meta → core-meta}/core-meta.html +24 -22
  121. data/app/assets/components/core-meta/demo.html +58 -0
  122. data/app/assets/components/core-meta/index.html +22 -0
  123. data/app/assets/components/core-overlay/README.md +4 -0
  124. data/app/assets/components/core-overlay/bower.json +8 -0
  125. data/app/assets/components/{core/overlay → core-overlay}/core-key-helper.html +2 -0
  126. data/app/assets/components/{core/overlay → core-overlay}/core-overlay-layer.html +112 -112
  127. data/app/assets/components/{core/overlay/core-overlay.html.erb → core-overlay/core-overlay.html} +77 -51
  128. data/app/assets/components/core-overlay/demo.html +155 -0
  129. data/app/assets/components/core-overlay/index.html +22 -0
  130. data/app/assets/components/core-popup-menu/README.md +6 -0
  131. data/app/assets/components/core-popup-menu/bower.json +13 -0
  132. data/app/assets/components/core-popup-menu/core-popup-menu.css +28 -0
  133. data/app/assets/components/core-popup-menu/core-popup-menu.html +198 -0
  134. data/app/assets/components/core-popup-menu/core-popup-overlay.html +111 -0
  135. data/app/assets/components/core-popup-menu/demo.html +542 -0
  136. data/app/assets/components/core-popup-menu/index.html +22 -0
  137. data/app/assets/components/core-popup-menu/metadata.html +62 -0
  138. data/app/assets/components/core-range/README.md +2 -0
  139. data/app/assets/components/core-range/bower.json +7 -0
  140. data/app/assets/components/{core/range → core-range}/core-range.html +17 -15
  141. data/app/assets/components/core-range/demo.html +64 -0
  142. data/app/assets/components/core-range/index.html +22 -0
  143. data/app/assets/components/core-scroll-header-panel/README.md +4 -0
  144. data/app/assets/components/core-scroll-header-panel/bower.json +11 -0
  145. data/app/assets/components/core-scroll-header-panel/core-scroll-header-panel.css +58 -0
  146. data/app/assets/components/core-scroll-header-panel/core-scroll-header-panel.html +313 -0
  147. data/app/assets/components/core-scroll-header-panel/demo.html +111 -0
  148. data/app/assets/components/core-scroll-header-panel/demos/demo1.html +80 -0
  149. data/app/assets/components/core-scroll-header-panel/demos/demo2.html +82 -0
  150. data/app/assets/components/core-scroll-header-panel/demos/demo3.html +81 -0
  151. data/app/assets/components/core-scroll-header-panel/demos/demo4.html +109 -0
  152. data/app/assets/components/core-scroll-header-panel/demos/demo5.html +109 -0
  153. data/app/assets/components/core-scroll-header-panel/demos/demo6.html +113 -0
  154. data/app/assets/components/core-scroll-header-panel/demos/demo7.html +120 -0
  155. data/app/assets/components/core-scroll-header-panel/demos/demo8.html +122 -0
  156. data/app/assets/components/core-scroll-header-panel/demos/demo9.html +100 -0
  157. data/app/assets/components/core-scroll-header-panel/demos/images/bg2.jpg +0 -0
  158. data/app/assets/components/core-scroll-header-panel/demos/images/bg3.jpg +0 -0
  159. data/app/assets/components/core-scroll-header-panel/demos/images/bg5.jpg +0 -0
  160. data/app/assets/components/core-scroll-header-panel/demos/images/bg6.jpg +0 -0
  161. data/app/assets/components/core-scroll-header-panel/demos/images/bg9.jpg +0 -0
  162. data/app/assets/components/core-scroll-header-panel/demos/lorem-ipsum.html +42 -0
  163. data/app/assets/components/core-scroll-header-panel/index.html +22 -0
  164. data/app/assets/components/core-scroll-header-panel/metadata.html +41 -0
  165. data/app/assets/components/core-selection/README.md +4 -0
  166. data/app/assets/components/core-selection/bower.json +7 -0
  167. data/app/assets/components/{core/selection → core-selection}/core-selection.html +6 -5
  168. data/app/assets/components/core-selection/demo.html +59 -0
  169. data/app/assets/components/core-selection/index.html +22 -0
  170. data/app/assets/components/core-selector/README.md +4 -0
  171. data/app/assets/components/core-selector/bower.json +8 -0
  172. data/app/assets/components/{core/selector/core-selector.html.erb → core-selector/core-selector.html} +53 -16
  173. data/app/assets/components/core-selector/demo.html +106 -0
  174. data/app/assets/components/core-selector/index.html +22 -0
  175. data/app/assets/components/core-selector/metadata.html +20 -0
  176. data/app/assets/components/core-style/README.md +4 -0
  177. data/app/assets/components/core-style/bower.json +7 -0
  178. data/app/assets/components/{core/style → core-style}/core-style.html +387 -386
  179. data/app/assets/components/core-style/demo.html +58 -0
  180. data/app/assets/components/core-style/elements.html +55 -0
  181. data/app/assets/components/core-style/index.html +22 -0
  182. data/app/assets/components/core-style/my-theme.html +73 -0
  183. data/app/assets/components/core-toolbar/README.md +4 -0
  184. data/app/assets/components/core-toolbar/bower.json +7 -0
  185. data/app/assets/components/core-toolbar/core-toolbar.css +110 -0
  186. data/app/assets/components/core-toolbar/core-toolbar.html +74 -0
  187. data/app/assets/components/core-toolbar/demo.html +107 -0
  188. data/app/assets/components/core-toolbar/index.html +22 -0
  189. data/app/assets/components/core-toolbar/metadata.html +28 -0
  190. data/app/assets/components/core-transition/README.md +2 -0
  191. data/app/assets/components/core-transition/bower.json +8 -0
  192. data/app/assets/components/core-transition/core-transition-css.html +221 -0
  193. data/app/assets/components/{core/transition → core-transition}/core-transition-overlay.css +1 -1
  194. data/app/assets/components/core-transition/core-transition.html +140 -0
  195. data/app/assets/components/core-transition/demo.html +87 -0
  196. data/app/assets/components/core-transition/index.html +22 -0
  197. data/app/assets/components/font-roboto/roboto.html +9 -0
  198. data/app/assets/components/paper-button/README.md +4 -0
  199. data/app/assets/components/paper-button/bower.json +11 -0
  200. data/app/assets/components/paper-button/demo.html +99 -0
  201. data/app/assets/components/paper-button/demo2.html +136 -0
  202. data/app/assets/components/paper-button/index.html +22 -0
  203. data/app/assets/components/paper-button/metadata.html +17 -0
  204. data/app/assets/components/paper-button/paper-button.css +11 -1
  205. data/app/assets/components/paper-button/{paper-button.html.erb → paper-button.html} +9 -8
  206. data/app/assets/components/paper-checkbox/README.md +4 -0
  207. data/app/assets/components/paper-checkbox/bower.json +8 -0
  208. data/app/assets/components/paper-checkbox/demo.html +113 -0
  209. data/app/assets/components/paper-checkbox/index.html +22 -0
  210. data/app/assets/components/paper-checkbox/metadata.html +17 -0
  211. data/app/assets/components/paper-checkbox/paper-checkbox.css +49 -48
  212. data/app/assets/components/paper-checkbox/{paper-checkbox.html.erb → paper-checkbox.html} +110 -104
  213. data/app/assets/components/paper-dialog/README.md +4 -0
  214. data/app/assets/components/paper-dialog/bower.json +10 -0
  215. data/app/assets/components/paper-dialog/demo.html +85 -0
  216. data/app/assets/components/paper-dialog/index.html +22 -0
  217. data/app/assets/components/paper-dialog/{paper-dialog-transition.html.erb → paper-dialog-transition.html} +3 -3
  218. data/app/assets/components/paper-dialog/paper-dialog.css +52 -0
  219. data/app/assets/components/paper-dialog/{paper-dialog.html.erb → paper-dialog.html} +7 -7
  220. data/app/assets/components/paper-dropdown/README.md +9 -0
  221. data/app/assets/components/paper-dropdown/bower.json +12 -0
  222. data/app/assets/components/paper-dropdown/demo.html +345 -0
  223. data/app/assets/components/paper-dropdown/index.html +22 -0
  224. data/app/assets/components/paper-dropdown/paper-dropdown.css +48 -0
  225. data/app/assets/components/paper-dropdown/paper-dropdown.html +191 -0
  226. data/app/assets/components/paper-fab/README.md +4 -0
  227. data/app/assets/components/paper-fab/bower.json +8 -0
  228. data/app/assets/components/paper-fab/demo.html +72 -0
  229. data/app/assets/components/paper-fab/demo2.html +103 -0
  230. data/app/assets/components/paper-fab/index.html +22 -0
  231. data/app/assets/components/paper-fab/metadata.html +36 -0
  232. data/app/assets/components/paper-fab/paper-fab.css +11 -2
  233. data/app/assets/components/paper-fab/{paper-fab.html.erb → paper-fab.html} +3 -2
  234. data/app/assets/components/paper-focusable/README.md +4 -0
  235. data/app/assets/components/paper-focusable/bower.json +7 -0
  236. data/app/assets/components/paper-focusable/demo.html +155 -0
  237. data/app/assets/components/paper-focusable/paper-focusable.html +2 -0
  238. data/app/assets/components/paper-icon-button/README.md +4 -0
  239. data/app/assets/components/paper-icon-button/bower.json +9 -0
  240. data/app/assets/components/paper-icon-button/demo.html +102 -0
  241. data/app/assets/components/paper-icon-button/index.html +22 -0
  242. data/app/assets/components/paper-icon-button/metadata.html +21 -0
  243. data/app/assets/components/paper-icon-button/paper-icon-button.css +1 -1
  244. data/app/assets/components/paper-icon-button/{paper-icon-button.html.erb → paper-icon-button.html} +7 -7
  245. data/app/assets/components/paper-icon-button/pulse-ink.css +20 -0
  246. data/app/assets/components/paper-input/README.md +4 -0
  247. data/app/assets/components/paper-input/bower.json +11 -0
  248. data/app/assets/components/paper-input/demo.html +124 -0
  249. data/app/assets/components/paper-input/index.html +22 -0
  250. data/app/assets/components/paper-input/metadata.html +23 -0
  251. data/app/assets/components/paper-input/paper-input.css +152 -0
  252. data/app/assets/components/paper-input/paper-input.html +314 -0
  253. data/app/assets/components/paper-item/README.md +4 -0
  254. data/app/assets/components/paper-item/bower.json +9 -0
  255. data/app/assets/components/paper-item/demo.html +39 -0
  256. data/app/assets/components/paper-item/index.html +22 -0
  257. data/app/assets/components/paper-item/metadata.html +23 -0
  258. data/app/assets/components/paper-item/paper-item.css +15 -2
  259. data/app/assets/components/paper-item/{paper-item.html.erb → paper-item.html} +7 -6
  260. data/app/assets/components/paper-menu-button/README.md +4 -0
  261. data/app/assets/components/paper-menu-button/bower.json +16 -0
  262. data/app/assets/components/paper-menu-button/demo.html +95 -0
  263. data/app/assets/components/paper-menu-button/index.html +22 -0
  264. data/app/assets/components/paper-menu-button/metadata.html +21 -0
  265. data/app/assets/components/paper-menu-button/{paper-menu-button-transition.html.erb → paper-menu-button-transition.html} +31 -26
  266. data/app/assets/components/paper-menu-button/paper-menu-button.css +5 -9
  267. data/app/assets/components/paper-menu-button/{paper-menu-button.html.erb → paper-menu-button.html} +52 -20
  268. data/app/assets/components/paper-progress/README.md +4 -0
  269. data/app/assets/components/paper-progress/bower.json +8 -0
  270. data/app/assets/components/paper-progress/demo.html +107 -0
  271. data/app/assets/components/paper-progress/index.html +22 -0
  272. data/app/assets/components/paper-progress/metadata.html +17 -0
  273. data/app/assets/components/paper-progress/paper-progress.css +1 -1
  274. data/app/assets/components/paper-progress/{paper-progress.html.erb → paper-progress.html} +23 -23
  275. data/app/assets/components/paper-radio-button/README.md +4 -0
  276. data/app/assets/components/paper-radio-button/bower.json +7 -0
  277. data/app/assets/components/paper-radio-button/demo.html +75 -0
  278. data/app/assets/components/paper-radio-button/index.html +22 -0
  279. data/app/assets/components/paper-radio-button/metadata.html +17 -0
  280. data/app/assets/components/paper-radio-button/paper-radio-button.css +14 -8
  281. data/app/assets/components/paper-radio-button/{paper-radio-button.html.erb → paper-radio-button.html} +38 -29
  282. data/app/assets/components/paper-radio-group/README.md +4 -0
  283. data/app/assets/components/paper-radio-group/bower.json +9 -0
  284. data/app/assets/components/paper-radio-group/demo.html +82 -0
  285. data/app/assets/components/paper-radio-group/index.html +22 -0
  286. data/app/assets/components/paper-radio-group/metadata.html +22 -0
  287. data/app/assets/components/paper-radio-group/{paper-radio-group.html.erb → paper-radio-group.html} +16 -16
  288. data/app/assets/components/paper-ripple/README.md +4 -0
  289. data/app/assets/components/paper-ripple/bower.json +9 -0
  290. data/app/assets/components/paper-ripple/demo.html +418 -0
  291. data/app/assets/components/paper-ripple/index.html +22 -0
  292. data/app/assets/components/paper-ripple/metadata.html +20 -0
  293. data/app/assets/components/paper-ripple/paper-ripple.html +3 -2
  294. data/app/assets/components/paper-ripple/raw.html +799 -0
  295. data/app/assets/components/paper-shadow/README.md +4 -0
  296. data/app/assets/components/paper-shadow/bower.json +7 -0
  297. data/app/assets/components/paper-shadow/demo.html +252 -0
  298. data/app/assets/components/paper-shadow/index.html +22 -0
  299. data/app/assets/components/paper-shadow/metadata.html +17 -0
  300. data/app/assets/components/paper-shadow/paper-shadow.css +11 -1
  301. data/app/assets/components/paper-shadow/{paper-shadow.html.erb → paper-shadow.html} +11 -4
  302. data/app/assets/components/paper-slider/README.md +4 -0
  303. data/app/assets/components/paper-slider/bower.json +9 -0
  304. data/app/assets/components/paper-slider/demo.html +151 -0
  305. data/app/assets/components/paper-slider/index.html +22 -0
  306. data/app/assets/components/paper-slider/metadata.html +20 -0
  307. data/app/assets/components/paper-slider/paper-slider.css +58 -26
  308. data/app/assets/components/paper-slider/{paper-slider.html.erb → paper-slider.html} +72 -75
  309. data/app/assets/components/paper-tabs/README.md +4 -0
  310. data/app/assets/components/paper-tabs/bower.json +12 -0
  311. data/app/assets/components/paper-tabs/demo.html +166 -0
  312. data/app/assets/components/paper-tabs/index.html +22 -0
  313. data/app/assets/components/paper-tabs/metadata.html +58 -0
  314. data/app/assets/components/paper-tabs/{paper-tab.html.erb → paper-tab.html} +10 -10
  315. data/app/assets/components/paper-tabs/paper-tabs.css +1 -1
  316. data/app/assets/components/paper-tabs/{paper-tabs.html.erb → paper-tabs.html} +29 -25
  317. data/app/assets/components/paper-toast/README.md +4 -0
  318. data/app/assets/components/paper-toast/bower.json +10 -0
  319. data/app/assets/components/paper-toast/demo.html +67 -0
  320. data/app/assets/components/paper-toast/index.html +22 -0
  321. data/app/assets/components/paper-toast/metadata.html +20 -0
  322. data/app/assets/components/paper-toast/paper-toast.css +80 -0
  323. data/app/assets/components/paper-toast/{paper-toast.html.erb → paper-toast.html} +39 -39
  324. data/app/assets/components/paper-toggle-button/README.md +4 -0
  325. data/app/assets/components/paper-toggle-button/bower.json +8 -0
  326. data/app/assets/components/paper-toggle-button/demo.html +77 -0
  327. data/app/assets/components/paper-toggle-button/index.html +22 -0
  328. data/app/assets/components/paper-toggle-button/metadata.html +17 -0
  329. data/app/assets/components/paper-toggle-button/paper-toggle-button.css +1 -1
  330. data/app/assets/components/paper-toggle-button/{paper-toggle-button.html.erb → paper-toggle-button.html} +39 -20
  331. data/app/assets/components/platform/README.md +6 -0
  332. data/app/assets/components/platform/bower.json +16 -0
  333. data/app/assets/components/platform/build.log +35 -0
  334. data/app/assets/components/platform/platform.js +16 -0
  335. data/app/assets/components/platform/platform.js.map +1 -0
  336. data/app/assets/components/polymer/README.md +17 -0
  337. data/app/assets/components/polymer/bower.json +8 -0
  338. data/app/assets/components/polymer/build.log +35 -0
  339. data/app/assets/components/polymer/layout.html +286 -0
  340. data/app/assets/components/polymer/polymer.html +13 -0
  341. data/app/assets/components/polymer/polymer.js +14 -0
  342. data/app/assets/components/polymer/polymer.js.map +1 -0
  343. data/app/assets/components/sampler-scaffold/README.md +4 -0
  344. data/app/assets/components/sampler-scaffold/bower.json +12 -0
  345. data/app/assets/components/sampler-scaffold/demo.html +54 -0
  346. data/app/assets/components/sampler-scaffold/demos/checkbox.html +20 -0
  347. data/app/assets/components/sampler-scaffold/demos/color.html +20 -0
  348. data/app/assets/components/sampler-scaffold/demos/radio.html +20 -0
  349. data/app/assets/components/sampler-scaffold/demos/range.html +20 -0
  350. data/app/assets/components/sampler-scaffold/demos/string.html +20 -0
  351. data/app/assets/components/sampler-scaffold/index.html +22 -0
  352. data/app/assets/components/sampler-scaffold/sampler-scaffold.css +157 -0
  353. data/app/assets/components/sampler-scaffold/sampler-scaffold.html +224 -0
  354. data/app/assets/components/web-animations-js/COPYING +202 -0
  355. data/app/assets/components/web-animations-js/README.md +237 -0
  356. data/app/assets/components/web-animations-js/run-lint.sh +19 -0
  357. data/app/assets/components/web-animations-js/run-tests-android.sh +25 -0
  358. data/app/assets/components/web-animations-js/run-tests.sh +15 -0
  359. data/app/assets/components/web-animations-js/test/bootstrap.js +1266 -0
  360. data/app/assets/components/web-animations-js/test/img/error.png +0 -0
  361. data/app/assets/components/web-animations-js/test/img/success.png +0 -0
  362. data/app/assets/components/web-animations-js/test/img/unknown.png +0 -0
  363. data/app/assets/components/web-animations-js/test/perf/balls-add-compositing.html +147 -0
  364. data/app/assets/components/web-animations-js/test/perf/balls-replace-compositing.html +144 -0
  365. data/app/assets/components/web-animations-js/test/perf/perf.js +158 -0
  366. data/app/assets/components/web-animations-js/test/perf/updating-inline-style-during-animation.html +165 -0
  367. data/app/assets/components/web-animations-js/test/test-generator.html +240 -0
  368. data/app/assets/components/web-animations-js/test/test-results-post.html +3 -0
  369. data/app/assets/components/web-animations-js/test/test-runner.html +810 -0
  370. data/app/assets/components/web-animations-js/test/testcases/auto-test-box-shadow-checks.js +42 -0
  371. data/app/assets/components/web-animations-js/test/testcases/auto-test-box-shadow.html +40 -0
  372. data/app/assets/components/web-animations-js/test/testcases/auto-test-calc-checks.js +41 -0
  373. data/app/assets/components/web-animations-js/test/testcases/auto-test-calc.html +156 -0
  374. data/app/assets/components/web-animations-js/test/testcases/auto-test-change-playback-rate-checks.js +23 -0
  375. data/app/assets/components/web-animations-js/test/testcases/auto-test-circular-path-checks.js +65 -0
  376. data/app/assets/components/web-animations-js/test/testcases/auto-test-circular-path.html +83 -0
  377. data/app/assets/components/web-animations-js/test/testcases/auto-test-color-checks.js +101 -0
  378. data/app/assets/components/web-animations-js/test/testcases/auto-test-color-names-checks.js +431 -0
  379. data/app/assets/components/web-animations-js/test/testcases/auto-test-color-names.html +204 -0
  380. data/app/assets/components/web-animations-js/test/testcases/auto-test-color.html +117 -0
  381. data/app/assets/components/web-animations-js/test/testcases/auto-test-composite-transforms-checks.js +45 -0
  382. data/app/assets/components/web-animations-js/test/testcases/auto-test-composite-transforms.html +97 -0
  383. data/app/assets/components/web-animations-js/test/testcases/auto-test-compositor-checks.js +26 -0
  384. data/app/assets/components/web-animations-js/test/testcases/auto-test-compositor.html +68 -0
  385. data/app/assets/components/web-animations-js/test/testcases/auto-test-delay-checks.js +92 -0
  386. data/app/assets/components/web-animations-js/test/testcases/auto-test-delay.html +39 -0
  387. data/app/assets/components/web-animations-js/test/testcases/auto-test-element-animate-checks.js +8 -0
  388. data/app/assets/components/web-animations-js/test/testcases/auto-test-element-animate.html +30 -0
  389. data/app/assets/components/web-animations-js/test/testcases/auto-test-fill-values-checks.js +266 -0
  390. data/app/assets/components/web-animations-js/test/testcases/auto-test-fill-values.html +114 -0
  391. data/app/assets/components/web-animations-js/test/testcases/auto-test-font-weight-checks.js +26 -0
  392. data/app/assets/components/web-animations-js/test/testcases/auto-test-font-weight.html +43 -0
  393. data/app/assets/components/web-animations-js/test/testcases/auto-test-initial-checks.js +74 -0
  394. data/app/assets/components/web-animations-js/test/testcases/auto-test-initial.html +242 -0
  395. data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-checks.js +17 -0
  396. data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-fallback-checks.js +17 -0
  397. data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-fallback.html +78 -0
  398. data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-methods-checks.js +17 -0
  399. data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-methods.html +70 -0
  400. data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style.html +69 -0
  401. data/app/assets/components/web-animations-js/test/testcases/auto-test-integer-checks.js +38 -0
  402. data/app/assets/components/web-animations-js/test/testcases/auto-test-integer.html +52 -0
  403. data/app/assets/components/web-animations-js/test/testcases/auto-test-iteration-start-checks.js +506 -0
  404. data/app/assets/components/web-animations-js/test/testcases/auto-test-iteration-start.html +160 -0
  405. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-alternate-checks.js +44 -0
  406. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-alternate-holes-checks.js +41 -0
  407. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-alternate-holes.html +48 -0
  408. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-alternate.html +50 -0
  409. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-basic-checks.js +162 -0
  410. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-basic.html +116 -0
  411. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-fill-checks.js +602 -0
  412. data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-fill.html +167 -0
  413. data/app/assets/components/web-animations-js/test/testcases/auto-test-keyframe-creation-checks.js +67 -0
  414. data/app/assets/components/web-animations-js/test/testcases/auto-test-keyframe-creation.html +109 -0
  415. data/app/assets/components/web-animations-js/test/testcases/auto-test-keyframe-easing-checks.js +65 -0
  416. data/app/assets/components/web-animations-js/test/testcases/auto-test-keyframe-easing.html +64 -0
  417. data/app/assets/components/web-animations-js/test/testcases/auto-test-length-units-checks.js +342 -0
  418. data/app/assets/components/web-animations-js/test/testcases/auto-test-length-units.html +103 -0
  419. data/app/assets/components/web-animations-js/test/testcases/auto-test-matrix-transforms-checks.js +56 -0
  420. data/app/assets/components/web-animations-js/test/testcases/auto-test-matrix-transforms.html +90 -0
  421. data/app/assets/components/web-animations-js/test/testcases/auto-test-motion-path-checks.js +110 -0
  422. data/app/assets/components/web-animations-js/test/testcases/auto-test-motion-path.html +133 -0
  423. data/app/assets/components/web-animations-js/test/testcases/auto-test-non-numeric-checks.js +26 -0
  424. data/app/assets/components/web-animations-js/test/testcases/auto-test-non-numeric.html +42 -0
  425. data/app/assets/components/web-animations-js/test/testcases/auto-test-parent-checks.js +38 -0
  426. data/app/assets/components/web-animations-js/test/testcases/auto-test-parent.html +52 -0
  427. data/app/assets/components/web-animations-js/test/testcases/auto-test-partial-keyframes-checks.js +27 -0
  428. data/app/assets/components/web-animations-js/test/testcases/auto-test-partial-keyframes.html +43 -0
  429. data/app/assets/components/web-animations-js/test/testcases/auto-test-path-checks.js +20 -0
  430. data/app/assets/components/web-animations-js/test/testcases/auto-test-path.html +41 -0
  431. data/app/assets/components/web-animations-js/test/testcases/auto-test-pause-checks.js +79 -0
  432. data/app/assets/components/web-animations-js/test/testcases/auto-test-pause.html +82 -0
  433. data/app/assets/components/web-animations-js/test/testcases/auto-test-perspective-checks.js +37 -0
  434. data/app/assets/components/web-animations-js/test/testcases/auto-test-perspective-origin-checks.js +61 -0
  435. data/app/assets/components/web-animations-js/test/testcases/auto-test-perspective-origin.html +94 -0
  436. data/app/assets/components/web-animations-js/test/testcases/auto-test-perspective.html +79 -0
  437. data/app/assets/components/web-animations-js/test/testcases/auto-test-playback-rate-checks.js +146 -0
  438. data/app/assets/components/web-animations-js/test/testcases/auto-test-playback-rate.html +128 -0
  439. data/app/assets/components/web-animations-js/test/testcases/auto-test-position-list-type-checks.js +73 -0
  440. data/app/assets/components/web-animations-js/test/testcases/auto-test-rectangle-checks.js +23 -0
  441. data/app/assets/components/web-animations-js/test/testcases/auto-test-rectangle.html +57 -0
  442. data/app/assets/components/web-animations-js/test/testcases/auto-test-reparent-checks.js +95 -0
  443. data/app/assets/components/web-animations-js/test/testcases/auto-test-reparent.html +60 -0
  444. data/app/assets/components/web-animations-js/test/testcases/auto-test-seq-speed-checks.js +69 -0
  445. data/app/assets/components/web-animations-js/test/testcases/auto-test-seq-speed.html +86 -0
  446. data/app/assets/components/web-animations-js/test/testcases/auto-test-shorthand-checks.js +197 -0
  447. data/app/assets/components/web-animations-js/test/testcases/auto-test-shorthand.html +115 -0
  448. data/app/assets/components/web-animations-js/test/testcases/auto-test-start-time-checks.js +58 -0
  449. data/app/assets/components/web-animations-js/test/testcases/auto-test-start-time-iterations-checks.js +92 -0
  450. data/app/assets/components/web-animations-js/test/testcases/auto-test-start-time-iterations.html +107 -0
  451. data/app/assets/components/web-animations-js/test/testcases/auto-test-start-time.html +90 -0
  452. data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-anim-checks.js +23 -0
  453. data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-anim.html +39 -0
  454. data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-circle-checks.js +23 -0
  455. data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-circle.html +38 -0
  456. data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-color-checks.js +20 -0
  457. data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-color.html +36 -0
  458. data/app/assets/components/web-animations-js/test/testcases/auto-test-text-shadow-checks.js +20 -0
  459. data/app/assets/components/web-animations-js/test/testcases/auto-test-text-shadow.html +37 -0
  460. data/app/assets/components/web-animations-js/test/testcases/auto-test-timing-functions-checks.js +89 -0
  461. data/app/assets/components/web-animations-js/test/testcases/auto-test-timing-functions.html +77 -0
  462. data/app/assets/components/web-animations-js/test/testcases/auto-test-to-animation-checks.js +58 -0
  463. data/app/assets/components/web-animations-js/test/testcases/auto-test-to-animation.html +83 -0
  464. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-3d-checks.js +134 -0
  465. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-3d.html +123 -0
  466. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-functions-checks.js +160 -0
  467. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-functions.html +158 -0
  468. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-origin-checks.js +37 -0
  469. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-origin.html +80 -0
  470. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-primitives-checks.js +292 -0
  471. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-primitives.html +97 -0
  472. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-units-checks.js +202 -0
  473. data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-units.html +98 -0
  474. data/app/assets/components/web-animations-js/test/testcases/auto-test-visibility-checks.js +54 -0
  475. data/app/assets/components/web-animations-js/test/testcases/auto-test-visibility.html +80 -0
  476. data/app/assets/components/web-animations-js/test/testcases/auto-test-wrapping-bug-checks.js +58 -0
  477. data/app/assets/components/web-animations-js/test/testcases/auto-test-wrapping-bug.html +60 -0
  478. data/app/assets/components/web-animations-js/test/testcases/background.png +0 -0
  479. data/app/assets/components/web-animations-js/test/testcases/disabled-auto-test-change-playback-rate.html +65 -0
  480. data/app/assets/components/web-animations-js/test/testcases/disabled-auto-test-position-list-type.html +103 -0
  481. data/app/assets/components/web-animations-js/test/testcases/disabled-media.html +439 -0
  482. data/app/assets/components/web-animations-js/test/testcases/disabled-test-compositing-order.html +112 -0
  483. data/app/assets/components/web-animations-js/test/testcases/impl-test-deprecation.html +85 -0
  484. data/app/assets/components/web-animations-js/test/testcases/impl-test-from-css-value.html +219 -0
  485. data/app/assets/components/web-animations-js/test/testcases/impl-test-paced-timing-function.html +83 -0
  486. data/app/assets/components/web-animations-js/test/testcases/impl-test-totimelinetime.html +37 -0
  487. data/app/assets/components/web-animations-js/test/testcases/impl-unit-test-position-type.html +256 -0
  488. data/app/assets/components/web-animations-js/test/testcases/manual-test-add-player-onend.html +57 -0
  489. data/app/assets/components/web-animations-js/test/testcases/manual-test-preset-timings.html +71 -0
  490. data/app/assets/components/web-animations-js/test/testcases/manual-test-step.html +88 -0
  491. data/app/assets/components/web-animations-js/test/testcases/small.mp4 +0 -0
  492. data/app/assets/components/web-animations-js/test/testcases/small.webm +0 -0
  493. data/app/assets/components/web-animations-js/test/testcases/test-bounds.html +69 -0
  494. data/app/assets/components/web-animations-js/test/testcases/test-document-timeline.html +53 -0
  495. data/app/assets/components/web-animations-js/test/testcases/test-dynamic-load.html +65 -0
  496. data/app/assets/components/web-animations-js/test/testcases/test-fill-auto.html +78 -0
  497. data/app/assets/components/web-animations-js/test/testcases/test-getcurrent.html +324 -0
  498. data/app/assets/components/web-animations-js/test/testcases/test-keyframe-animation-effect.html +248 -0
  499. data/app/assets/components/web-animations-js/test/testcases/test-keyframe-composite-operation.html +182 -0
  500. data/app/assets/components/web-animations-js/test/testcases/test-null-target.html +66 -0
  501. data/app/assets/components/web-animations-js/test/testcases/test-pause-for-testing.html +52 -0
  502. data/app/assets/components/web-animations-js/test/testcases/test-player-addeventlistener.html +161 -0
  503. data/app/assets/components/web-animations-js/test/testcases/test-player-cleanup.html +79 -0
  504. data/app/assets/components/web-animations-js/test/testcases/test-player-finish-event.html +101 -0
  505. data/app/assets/components/web-animations-js/test/testcases/test-player-sort.html +48 -0
  506. data/app/assets/components/web-animations-js/test/testcases/test-player.html +786 -0
  507. data/app/assets/components/web-animations-js/test/testcases/test-pseudo-element-reference.html +38 -0
  508. data/app/assets/components/web-animations-js/test/testcases/test-repeated-pause.html +54 -0
  509. data/app/assets/components/web-animations-js/test/testcases/test-restart.html +115 -0
  510. data/app/assets/components/web-animations-js/test/testcases/test-reversed-player-active-phase.html +28 -0
  511. data/app/assets/components/web-animations-js/test/testcases/test-rotation-not-reversed.html +55 -0
  512. data/app/assets/components/web-animations-js/test/testcases/test-update-state.html +113 -0
  513. data/app/assets/components/web-animations-js/test/testcases/unit-test-clone.html +80 -0
  514. data/app/assets/components/web-animations-js/test/testcases/unit-test-delay.html +66 -0
  515. data/app/assets/components/web-animations-js/test/testcases/unit-test-dom-operations.html +164 -0
  516. data/app/assets/components/web-animations-js/test/testcases/unit-test-duration.html +66 -0
  517. data/app/assets/components/web-animations-js/test/testcases/unit-test-get-siblings.html +112 -0
  518. data/app/assets/components/web-animations-js/test/testcases/unit-test-modify-timing-params.html +105 -0
  519. data/app/assets/components/web-animations-js/test/testcases/unit-test-null-effect.html +43 -0
  520. data/app/assets/components/web-animations-js/test/testcases/unit-test-set-parent.html +111 -0
  521. data/app/assets/components/web-animations-js/test/testcases/unit-test-testharness-failure.html +54 -0
  522. data/app/assets/components/web-animations-js/test/testcases/unit-test-testharness.html +248 -0
  523. data/app/assets/components/web-animations-js/test/testcases/unit-test-unpause.html +68 -0
  524. data/app/assets/components/web-animations-js/test/testcases.js +93 -0
  525. data/app/assets/components/web-animations-js/test/testharness_timing.css +75 -0
  526. data/app/assets/components/web-animations-js/test/update-testcases.py +63 -0
  527. data/app/assets/components/web-animations-js/tools/android/config.sh +8 -0
  528. data/app/assets/components/web-animations-js/tools/android/setup.sh +152 -0
  529. data/app/assets/components/web-animations-js/tools/android/stop.sh +20 -0
  530. data/app/assets/components/web-animations-js/tools/python/requirements.txt +12 -0
  531. data/app/assets/components/web-animations-js/tools/python/run-tests.py +813 -0
  532. data/app/assets/components/web-animations-js/tools/python/setup.sh +60 -0
  533. data/app/assets/components/web-animations-js/tutorial/basic-animations/basic-animation-exercise-1.html +62 -0
  534. data/app/assets/components/web-animations-js/tutorial/basic-animations/basic-animation.html +120 -0
  535. data/app/assets/components/web-animations-js/tutorial/iframe-contents.html +29 -0
  536. data/app/assets/components/web-animations-js/tutorial/jquery.js +9555 -0
  537. data/app/assets/components/web-animations-js/tutorial/page-load.js +114 -0
  538. data/app/assets/components/web-animations-js/tutorial/parallel/parallel-exercise-1.html +58 -0
  539. data/app/assets/components/web-animations-js/tutorial/parallel/parallel.html +101 -0
  540. data/app/assets/components/web-animations-js/tutorial/sample-tutorial.html +44 -0
  541. data/app/assets/components/web-animations-js/tutorial/try-it-yourself.js +216 -0
  542. data/app/assets/components/web-animations-js/tutorial/tutorial-style.css +344 -0
  543. data/app/assets/components/web-animations-js/tutorial/tutorial-testing.js +84 -0
  544. data/app/assets/components/{core/animation → web-animations-js}/web-animations.js +77 -214
  545. data/lib/polymer-paper-rails/version.rb +1 -1
  546. metadata +540 -61
  547. data/app/assets/components/core/animation/web-animations.html.erb +0 -1
  548. data/app/assets/components/core/icon/core-icon.html.erb +0 -126
  549. data/app/assets/components/core/input/core-input.css +0 -35
  550. data/app/assets/components/core/list/core-list.css +0 -20
  551. data/app/assets/components/core/list/core-list.html.erb +0 -403
  552. data/app/assets/components/core/transition/core-transition-css.html.erb +0 -76
  553. data/app/assets/components/core/transition/core-transition.html.erb +0 -44
  554. data/app/assets/components/paper-input/error-100.png +0 -0
  555. data/app/assets/components/paper-input/error-200.png +0 -0
  556. data/app/assets/components/paper-input/paper-input.html.erb +0 -398
  557. data/app/assets/components/paper-input/paper-input.scss +0 -203
  558. data/app/assets/components/paper-menu-button/paper-menu-button-overlay.html.erb +0 -86
@@ -0,0 +1,80 @@
1
+ <!--
2
+ Copyright 2012 Google Inc. All Rights Reserved.
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ -->
16
+
17
+ <!DOCTYPE html><meta charset="UTF-8">
18
+ <body>
19
+ <style>
20
+ body {
21
+ margin: 0px;
22
+ }
23
+ .test {
24
+ height: 50px;
25
+ background: lightsteelblue;
26
+ }
27
+ .red {
28
+ background: red;
29
+ }
30
+ .expectation {
31
+ position: relative;
32
+ background: red;
33
+ }
34
+ </style>
35
+ <script>
36
+ "use strict";
37
+ // Create the elements
38
+ var states = {'visible':1, 'hidden':1, 'collapse':1};
39
+ for (var start in states) {
40
+ for (var end in states) {
41
+ var frames = [start, end];
42
+ var testContainer = document.createElement('div');
43
+ testContainer.textContent = 'visibility: ' + JSON.stringify(frames);
44
+ document.body.appendChild(testContainer);
45
+ if (end == 'visible') {
46
+ var expectation = document.createElement('div');
47
+ expectation.classList.add('expectation');
48
+ testContainer.appendChild(expectation);
49
+ }
50
+ var testElement = document.createElement('div');
51
+ testElement.classList.add('test');
52
+ testElement.id = start + "_" + end
53
+ if (end == 'hidden' || end == 'collapse') {
54
+ testElement.classList.add('red');
55
+ }
56
+ testContainer.appendChild(testElement);
57
+ }
58
+ }
59
+
60
+ </script>
61
+ <script src="../bootstrap.js"></script>
62
+ <script>
63
+ "use strict";
64
+ var timing = {duration: 0.5 * 1000, easing: 'steps(2, end)', fill: 'forwards'};
65
+
66
+ // Add the animations
67
+ var animations = [];
68
+ for (var start in states) {
69
+ for (var end in states) {
70
+ var effect = [{visibility: start}, {visibility: end}];
71
+ var testElement = document.getElementById(start + "_" + end);
72
+ animations.push(
73
+ new Animation(testElement, effect, timing));
74
+ }
75
+ }
76
+ </script>
77
+ <script>
78
+ "use strict";
79
+ animations.forEach(function(anim) { document.timeline.play(anim); });
80
+ </script>
@@ -0,0 +1,58 @@
1
+ timing_test(function() {
2
+ at(0 * 1000, function() {
3
+ assert_styles(
4
+ '.anim',
5
+ [{'transform':'matrix(1, 0, 0, 1, -800, 0)'},
6
+ {'transform':'matrix(1, 0, 0, 1, -800, 0)'},
7
+ {'transform':'matrix(1, 0, 0, 1, -800, 0)'},
8
+ {'transform':'matrix(1, 0, 0, 1, -800, 0)'}]);
9
+ }, "Autogenerated");
10
+ at(0.1 * 1000, function() {
11
+ assert_styles(
12
+ '.anim',
13
+ [{'transform':'matrix(1, 0, 0, 1, -800, 0)'},
14
+ {'transform':'matrix(1, 0, 0, 1, -800, 0)'},
15
+ {'transform':'matrix(1, 0, 0, 1, -800, 0)'},
16
+ {'transform':'matrix(1, 0, 0, 1, -800, 0)'}]);
17
+ }, "Autogenerated");
18
+ at(0.2 * 1000, function() {
19
+ assert_styles(
20
+ '.anim',
21
+ [{'transform':'matrix(1, 0, 0, 1, -800, 0)'},
22
+ {'transform':'matrix(1, 0, 0, 1, -800, 0)'},
23
+ {'transform':'matrix(1, 0, 0, 1, -800, 0)'},
24
+ {'transform':'matrix(1, 0, 0, 1, -800, 0)'}]);
25
+ }, "Autogenerated");
26
+ at(0.30000000000000004 * 1000, function() {
27
+ assert_styles(
28
+ '.anim',
29
+ [{'transform':'matrix(1, 0, 0, 1, -666.6666870117188, 0)'},
30
+ {'transform':'matrix(1, 0, 0, 1, -533.3333129882813, 0)'},
31
+ {'transform':'matrix(1, 0, 0, 1, -533.3599853515625, 0)'},
32
+ {'transform':'matrix(1, 0, 0, 1, -533.3333129882813, 0)'}]);
33
+ }, "Autogenerated");
34
+ at(0.4 * 1000, function() {
35
+ assert_styles(
36
+ '.anim',
37
+ [{'transform':'matrix(1, 0, 0, 1, -400, 0)'},
38
+ {'transform':'matrix(1, 0, 0, 1, -266.6666564941406, 0)'},
39
+ {'transform':'matrix(1, 0, 0, 1, -266.6933288574219, 0)'},
40
+ {'transform':'matrix(1, 0, 0, 1, -266.6666564941406, 0)'}]);
41
+ }, "Autogenerated");
42
+ at(0.5 * 1000, function() {
43
+ assert_styles(
44
+ '.anim',
45
+ [{'transform':'matrix(1, 0, 0, 1, -133.3333282470703, 0)'},
46
+ {'transform':'matrix(1, 0, 0, 1, 0, 0)'},
47
+ {'transform':'matrix(1, 0, 0, 1, -0.02666666731238365, 0)'},
48
+ {'transform':'matrix(1, 0, 0, 1, -800, 0)'}]);
49
+ }, "Autogenerated");
50
+ at(0.6 * 1000, function() {
51
+ assert_styles(
52
+ '.anim',
53
+ [{'transform':'matrix(1, 0, 0, 1, 0, 0)'},
54
+ {'transform':'matrix(1, 0, 0, 1, 0, 0)'},
55
+ {'transform':'matrix(1, 0, 0, 1, -800, 0)'},
56
+ {'transform':'matrix(1, 0, 0, 1, -800, 0)'}]);
57
+ }, "Autogenerated");
58
+ }, "Autogenerated checks.");
@@ -0,0 +1,60 @@
1
+ <!--
2
+ Copyright 2012 Google Inc. All Rights Reserved.
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ -->
16
+
17
+ <!DOCTYPE html><meta charset="UTF-8">
18
+ <style>
19
+ .anim {
20
+ width: 800px;
21
+ height: 70px;
22
+ -webkit-transform: translate(-800px, 0px);
23
+ transform: translate(-800px, 0px);
24
+ background-color: lightsteelblue;
25
+ }
26
+ </style>
27
+ <div class="anim" id="overflow"></div>
28
+ <div class="anim" id="overflowControl"></div>
29
+ <div class="anim" id="underflow"></div>
30
+ <div class="anim" id="underflowControl"></div>
31
+ <script src="../bootstrap.js"></script>
32
+ <script>
33
+ "use strict";
34
+
35
+ var effect = [{transform: "translate(-800px,0px)"}, {transform: "translate(0px,0px)"}];
36
+
37
+ var group = new AnimationGroup();
38
+ document.timeline.play(new AnimationGroup([
39
+ new Animation(overflow,
40
+ effect,
41
+ { duration: 0.3 * 1000, delay: 0.25 * 1000, fill: 'forwards' })]));
42
+
43
+ document.timeline.play(new AnimationGroup([
44
+ new Animation(overflowControl,
45
+ effect,
46
+ { duration: 0.3 * 1000, delay: 0.2 * 1000, fill: 'forwards' })]));
47
+
48
+ document.timeline.play(new AnimationGroup([
49
+ new Animation(underflow,
50
+ effect,
51
+ { duration: 0.3 * 1000, delay: 0.20001 * 1000, fill: 'none' })]));
52
+
53
+ document.timeline.play(new AnimationGroup([
54
+ new Animation(underflowControl,
55
+ effect,
56
+ { duration: 0.3 * 1000, delay: 0.2 * 1000, fill: 'none' })]));
57
+
58
+ </script>
59
+
60
+
@@ -0,0 +1,65 @@
1
+ <!--
2
+ Copyright 2012 Google Inc. All Rights Reserved.
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ -->
16
+
17
+
18
+ <!--
19
+ This test is currently broken.
20
+ 1) The test doesn't work without simulating all the frames
21
+ 2) The test fails when you simulate on t=0 boundary because currentTime_ ends
22
+ up null
23
+ 3) The test fails when you simulate on t=0 boundary because relativeTime
24
+ returns null when zeroTime is null
25
+ -->
26
+
27
+
28
+ <!DOCTYPE html><meta charset="UTF-8">
29
+ <style>
30
+ .anim {
31
+ left: 0px;
32
+ width: 100px;
33
+ height: 100px;
34
+ background-color: #FAA;
35
+ position: absolute;
36
+ }
37
+
38
+ #a {
39
+ top: 0px
40
+ }
41
+ </style>
42
+
43
+ <div id="a" class="anim a"></div>
44
+
45
+
46
+ <script src="../bootstrap.js"></script>
47
+ <script>
48
+ "use strict";
49
+
50
+ var a1 = new Animation(document.querySelector("#a"),
51
+ [{left: "0px"}, {left: "500px"}],
52
+ {duration: 10 * 1000, direction: 'alternating', iterations: Infinity});
53
+ var player1 = document.timeline.play(a1);
54
+
55
+ var a2 = new Animation(undefined,
56
+ function(timeFraction) {
57
+ var playbackRate = 0.01 + 10 * timeFraction;
58
+ player1.playbackRate = playbackRate
59
+ player2.playbackRate = playbackRate;
60
+ document.querySelector("#a").textContent = playbackRate;
61
+ },
62
+ a1.timing.clone());
63
+ var player2 = document.timeline.play(a2);
64
+
65
+ </script>
@@ -0,0 +1,103 @@
1
+ <!--
2
+ Copyright 2012 Google Inc. All Rights Reserved.
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ -->
16
+
17
+ <!DOCTYPE html><meta charset="UTF-8">
18
+ <style>
19
+ .anim {
20
+ width: 200px;
21
+ height: 200px;
22
+ display: inline-block;
23
+ border-style: solid;
24
+ font-weight: bold;
25
+ border-color: white;
26
+ color: white;
27
+ background-color: #888;
28
+ background-repeat: no-repeat;
29
+ }
30
+ </style>
31
+
32
+ All divs should end up with a green block in the top left corner.
33
+ <div id="container"></div>
34
+
35
+ <script src="../bootstrap.js"></script>
36
+ <script>
37
+ "use strict";
38
+
39
+ function generateGridLinesURI(size) {
40
+ var canvas = document.createElement('canvas');
41
+ canvas.width = size;
42
+ canvas.height = size;
43
+ var context = canvas.getContext('2d');
44
+
45
+ context.fillStyle = 'green';
46
+ context.fillRect(0.5, 0.5, size - 1, size - 1);
47
+
48
+ context.lineWidth = 2;
49
+ context.strokeStyle = 'black';
50
+ context.strokeRect(1, 1, size - 2, size - 2);
51
+
52
+ return canvas.toDataURL();
53
+ }
54
+ var backgroundImage = 'url(' + generateGridLinesURI(150) + ')';
55
+
56
+ var startPosition = '0% 0%';
57
+ var endPositions = [
58
+ 'left',
59
+ 'center',
60
+ 'right',
61
+ 'top',
62
+ 'bottom',
63
+ '10px',
64
+ '20%',
65
+ 'center left',
66
+ 'center center',
67
+ 'right bottom',
68
+ 'right 25%',
69
+ '10px bottom',
70
+ '10px 40px',
71
+ 'left bottom 10px',
72
+ 'center top 20%',
73
+ 'right top 10px',
74
+ 'right bottom 80%',
75
+ 'right 80% bottom',
76
+ 'bottom left 10px',
77
+ 'left 40px bottom 10px',
78
+ 'left 20% top 20%',
79
+ 'calc(25% - 5px)',
80
+ 'calc(25% - 5px) 25%',
81
+ 'top calc(25% - 5px) center',
82
+ 'bottom left 10px',
83
+ 'bottom calc(25% - 5px) right',
84
+ 'left 10px bottom 10px',
85
+ 'left 25% top 25%',
86
+ 'left calc(25% - 5px) top 10px',
87
+ 'top 10px right calc(25% - 5px)',
88
+ 'bottom calc(25% - 5px) left 10px',
89
+ ];
90
+
91
+ for (var i = 0; i < endPositions.length; i++) {
92
+ var endPosition = endPositions[i];
93
+ var pre = document.createElement('pre');
94
+ pre.style.backgroundImage = backgroundImage;
95
+ pre.className = 'anim';
96
+ pre.innerText = 'background-position:\nfrom: ' + startPosition + '\nto: ' + endPosition;
97
+ document.querySelector('#container').appendChild(pre);
98
+ document.timeline.play(new Animation(pre, new KeyframeEffect([
99
+ { backgroundPosition: startPosition },
100
+ { backgroundPosition: endPosition },
101
+ ]), { duration:2, easing: 'ease-in'}));
102
+ }
103
+ </script>
@@ -0,0 +1,439 @@
1
+ <!--
2
+ Copyright 2013 Google Inc. All Rights Reserved.
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ -->
16
+
17
+ <!--
18
+ Requires the test harness to allow tests to be added after page load. See
19
+ https://github.com/web-animations/web-animations-js/issues/321
20
+ -->
21
+
22
+ <!DOCTYPE html><meta charset="UTF-8">
23
+ <style type="text/css">
24
+ video {
25
+ width: 100px;
26
+ }
27
+ </style>
28
+
29
+ <!--
30
+ Videos are taken from
31
+ http://techslides.com/sample-webm-ogg-and-mp4-video-files-for-html5
32
+
33
+ We serve them from a remote host to make sure they are served with a 206
34
+ response code, to work around Chrome bug
35
+ https://code.google.com/p/chromium/issues/detail?id=121765.
36
+ -->
37
+ <div id="videos">
38
+ <video preload="auto">
39
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
40
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
41
+ </video>
42
+ <video preload="auto">
43
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
44
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
45
+ </video>
46
+ <video preload="auto">
47
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
48
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
49
+ </video>
50
+ <video preload="auto">
51
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
52
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
53
+ </video>
54
+ <video preload="auto">
55
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
56
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
57
+ </video>
58
+ <video preload="auto">
59
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
60
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
61
+ </video>
62
+ <video preload="auto">
63
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
64
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
65
+ </video>
66
+ <video preload="auto">
67
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
68
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
69
+ </video>
70
+ <video preload="auto">
71
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
72
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
73
+ </video>
74
+ <video preload="auto">
75
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
76
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
77
+ </video>
78
+ <video preload="auto">
79
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
80
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
81
+ </video>
82
+ <video preload="auto">
83
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
84
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
85
+ </video>
86
+ <video preload="auto">
87
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
88
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
89
+ </video>
90
+ <video preload="auto">
91
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
92
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
93
+ </video>
94
+ <video preload="auto">
95
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
96
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
97
+ </video>
98
+ <video preload="auto">
99
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
100
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
101
+ </video>
102
+ <video preload="auto">
103
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
104
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
105
+ </video>
106
+ <video preload="auto">
107
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
108
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
109
+ </video>
110
+ <video preload="auto">
111
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
112
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
113
+ </video>
114
+ <video preload="auto">
115
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.webm" type="video/webm">
116
+ <source src="http://web-animations.github.io/web-animations-js/test/testcases/small.mp4" type="video/mp4">
117
+ </video>
118
+ </div>
119
+
120
+ <script src="../bootstrap.js" nochecks></script>
121
+ <script>
122
+ "use strict";
123
+
124
+ var dt = document.timeline;
125
+
126
+ // Most of these tests require the video to have loaded before they run.
127
+ // However, the test harness does not allow timing_test()s to be started after
128
+ // the page has finished loading. This means that we can't add the video
129
+ // dynamically then wait for it to load before testing.
130
+ //
131
+ // As a best-effort work-around, we include all videos in static HTML with
132
+ // preload="auto" to hint to the browser that they should be loaded
133
+ // immediately. However, this does not guarantee that they will be loaded when
134
+ // the page's load event fires, so the tests are flaky.
135
+ //
136
+ // TODO: Fix the test runner to allow the use of async_test() with
137
+ // timing_test(), which will allow the video elements to be created dynamically.
138
+ // See https://github.com/web-animations/web-animations-js/issues/321
139
+ var videos = document.getElementById("videos").getElementsByTagName('video');
140
+ // Cache this length, as videos is a live NodeList.
141
+ var numStaticVideos = videos.length;
142
+ var nextIndex = 0;
143
+ function getNextVideo() {
144
+ if (nextIndex >= numStaticVideos) {
145
+ throw new Error('No more videos!');
146
+ }
147
+ return videos[nextIndex++];
148
+ }
149
+
150
+ function createVideo() {
151
+ // Videos taken from
152
+ // http://techslides.com/sample-webm-ogg-and-mp4-video-files-for-html5
153
+ var video = document.createElement("video");
154
+ var webmSource = document.createElement("source");
155
+ webmSource.setAttribute("src", "small.webm");
156
+ webmSource.setAttribute("type", "video/webm");
157
+ video.appendChild(webmSource);
158
+ var mp4Source = document.createElement("source");
159
+ mp4Source.setAttribute("src", "small.mp4");
160
+ mp4Source.setAttribute("type", "video/mp4");
161
+ video.appendChild(mp4Source);
162
+ document.getElementById("videos").appendChild(video);
163
+ return video;
164
+ }
165
+
166
+ function testOnceVideosLoaded(callback, message) {
167
+ timing_test(function() {
168
+ at(0.0 * 1000, callback);
169
+ }, message);
170
+ }
171
+
172
+ function createTestMediaReference(mediaElement, timing, parent) {
173
+ return new MediaReference(mediaElement, timing, parent, 0.0);
174
+ }
175
+
176
+ var expectedVideoLength = 5.568;
177
+
178
+
179
+ // Test that MediaReference disables looping.
180
+ test(function() {
181
+ var video = getNextVideo();
182
+ video.loop = true;
183
+ createTestMediaReference(video);
184
+ assert_false(video.loop);
185
+ }, "MediaReference should disable looping");
186
+
187
+ // Test intrinsic iteration duration before media loads.
188
+ test(function() {
189
+ assert_equals(createTestMediaReference(createVideo()).duration,
190
+ Infinity);
191
+ }, "Intrinsic duration should be Infinity before media loads");
192
+
193
+ // Test intrinisc iteration duration.
194
+ testOnceVideosLoaded(function() {
195
+ assert_approx_equals(
196
+ createTestMediaReference(getNextVideo()).duration,
197
+ expectedVideoLength, 0.001);
198
+ }, "Intrinsic iteration duration should be media duration");
199
+
200
+ // Test that iteration duration can be overridden.
201
+ testOnceVideosLoaded(function() {
202
+ assert_equals(createTestMediaReference(getNextVideo(), 1.0).duration,
203
+ 1.0);
204
+ }, "Iteration duration should be overridable");
205
+
206
+ // Test basic use.
207
+ timing_test(function() {
208
+ var video = getNextVideo();
209
+ at(0.0 * 1000, function() {
210
+ dt.play(createTestMediaReference(video));
211
+ assert_equals(video.playbackRate, 1.0);
212
+ assert_false(video.paused);
213
+ });
214
+ }, "Basic use");
215
+
216
+ // Test clipping where duration limits. Video should be frozen at end
217
+ // of duration.
218
+ timing_test(function() {
219
+ var video = getNextVideo();
220
+ at(0.0 * 1000, function() {
221
+ dt.play(createTestMediaReference(video, 3.0));
222
+ });
223
+ at(3.0 * 1000, function() {
224
+ assert_equals(video.currentTime, 3.0);
225
+ assert_true(video.paused);
226
+ });
227
+ at(4.0 * 1000, function() {
228
+ assert_equals(video.currentTime, 3.0);
229
+ assert_true(video.paused);
230
+ });
231
+ }, "Video should be frozen at duration");
232
+
233
+ // Test clipping where video length limits. Video should be frozen at end for
234
+ // remainder of duration.
235
+ timing_test(function() {
236
+ var video = getNextVideo();
237
+ at(0.0 * 1000, function() {
238
+ dt.play(createTestMediaReference(video, video.duration + 2));
239
+ });
240
+ // We can't use video.duration here because the video isn't yet loaded.
241
+ at(expectedVideoLength + 1, function() {
242
+ assert_equals(video.currentTime, video.duration);
243
+ assert_true(video.paused);
244
+ });
245
+ // We can't use video.duration here because the video isn't yet loaded.
246
+ at(expectedVideoLength + 2, function() {
247
+ assert_equals(video.currentTime, video.duration);
248
+ assert_true(video.paused);
249
+ });
250
+ }, "Video should be frozen at end");
251
+
252
+ // Test fill with duration limiting. Video should be frozen at end of
253
+ // duration.
254
+ timing_test(function() {
255
+ var video = getNextVideo();
256
+ at(0.0 * 1000, function() {
257
+ dt.play(createTestMediaReference(video, 1.0));
258
+ });
259
+ at(2.0 * 1000, function() {
260
+ assert_equals(video.currentTime, 1.0);
261
+ assert_equals(video.paused, true);
262
+ });
263
+ }, "Should freeze video at duration for fill");
264
+
265
+ // Test fill with video length limiting. Video should be at end.
266
+ timing_test(function() {
267
+ var video = getNextVideo();
268
+ at(0.0 * 1000, function() {
269
+ dt.play(createTestMediaReference(video), video.duration + 1.0);
270
+ });
271
+ // We can't use video.duration here because the video isn't yet loaded.
272
+ at(expectedVideoLength + 2, function() {
273
+ assert_equals(video.currentTime, video.duration);
274
+ });
275
+ }, "Should freeze video at end for fill");
276
+
277
+ // Test no fill. Video should be frozen at start.
278
+ timing_test(function() {
279
+ var video = getNextVideo();
280
+ at(0.0 * 1000, function() {
281
+ dt.play(createTestMediaReference(video, {fill: "none"}));
282
+ });
283
+ // We can't use video.duration here because the video isn't yet loaded.
284
+ at(expectedVideoLength + 1, function() {
285
+ assert_equals(video.currentTime, 0);
286
+ assert_equals(video.paused, true);
287
+ });
288
+ }, "Should freeze video at start for no fill");
289
+
290
+ // Test iterations.
291
+ timing_test(function() {
292
+ var video = getNextVideo();
293
+ at(0.0 * 1000, function() {
294
+ dt.play(createTestMediaReference(video,
295
+ {iterations: 2.0, duration: 1.0 * 1000}));
296
+ });
297
+ at(1.5 * 1000, function() {
298
+ assert_equals(video.currentTime, 0.5);
299
+ });
300
+ }, "Video should respect iterations");
301
+
302
+ // Test iterationStart.
303
+ timing_test(function() {
304
+ var video = getNextVideo();
305
+ at(0.0 * 1000, function() {
306
+ dt.play(createTestMediaReference(video,
307
+ {iterationStart: 0.5, duration: 2.0 * 1000}));
308
+ });
309
+ at(0.5 * 1000, function() {
310
+ assert_equals(video.currentTime, 1.5);
311
+ });
312
+ }, "Video should respect iterationStart");
313
+
314
+ // Test playback rate.
315
+ timing_test(function() {
316
+ var video = getNextVideo();
317
+ at(0.0 * 1000, function() {
318
+ dt.play(createTestMediaReference(video, {playbackRate: 2.0}));
319
+ });
320
+ at(1.0 * 1000, function() {
321
+ assert_equals(video.currentTime, 2.0);
322
+ assert_equals(video.playbackRate, 2.0);
323
+ });
324
+ }, "Video should respect playbackRate");
325
+
326
+ // Test heirachy of playback rates.
327
+ timing_test(function() {
328
+ var video = getNextVideo();
329
+ at(0.0 * 1000, function() {
330
+ dt.play(new AnimationGroup([createTestMediaReference(video, {playbackRate: 1.5})],
331
+ {playbackRate: 2.5}));
332
+ });
333
+ at(1.0 * 1000, function() {
334
+ assert_equals(video.currentTime, 3.75);
335
+ assert_equals(video.playbackRate, 3.75);
336
+ });
337
+ }, "Video should respect playbackRate heirachy");
338
+
339
+ // Test interaction with MediaElement.defaultPlaybackRate.
340
+ timing_test(function() {
341
+ var video = getNextVideo();
342
+ at(0.0 * 1000, function() {
343
+ video.defaultPlaybackRate = 2.5;
344
+ dt.play(createTestMediaReference(video, {playbackRate: 1.5}));
345
+ });
346
+ at(1.0 * 1000, function() {
347
+ assert_equals(video.currentTime, 3.75);
348
+ assert_equals(video.playbackRate, 3.75);
349
+ });
350
+ }, "Video should respect playbackRate after setting defaultPlaybackRate");
351
+
352
+ // Test reversing.
353
+ timing_test(function() {
354
+ var video = getNextVideo();
355
+ at(0.0 * 1000, function() {
356
+ dt.play(createTestMediaReference(video, {direction: "reverse"}));
357
+ });
358
+ at(1.0 * 1000, function() {
359
+ assert_approx_equals(video.currentTime, video.duration - 1.0, 0.0001);
360
+ assert_equals(video.playbackRate, -1.0);
361
+ });
362
+ }, "Video should respect reversing");
363
+
364
+ // Test negative playback rate.
365
+ timing_test(function() {
366
+ var video = getNextVideo();
367
+ at(0.0 * 1000, function() {
368
+ dt.play(createTestMediaReference(video, {playbackRate: -0.5}));
369
+ });
370
+ at(1.0 * 1000, function() {
371
+ assert_approx_equals(video.currentTime, video.duration - 0.5, 0.0001);
372
+ assert_equals(video.playbackRate, -0.5);
373
+ });
374
+ }, "Video should respect negative playbackRate");
375
+
376
+ // Test interaction of reversing and playback rate.
377
+ timing_test(function() {
378
+ var video = getNextVideo();
379
+ at(0.0 * 1000, function() {
380
+ dt.play(new AnimationGroup(
381
+ [createTestMediaReference(video, {playbackRate: -0.5})],
382
+ {playbackRate: 3.0, direction: "reverse"}));
383
+ });
384
+ at(1.0 * 1000, function() {
385
+ assert_equals(video.currentTime, 1.5);
386
+ assert_equals(video.playbackRate, 1.5);
387
+ });
388
+ }, "Video should respect reversing and playbackRate");
389
+
390
+ // Test zero duration.
391
+ timing_test(function() {
392
+ var video = getNextVideo();
393
+ at(0.0 * 1000, function() {
394
+ dt.play(createTestMediaReference(video, 0.0));
395
+ assert_equals(video.currentTime, 0.0);
396
+ });
397
+ at(1.0 * 1000, function() {
398
+ assert_equals(video.currentTime, 0.0);
399
+ });
400
+ }, "Video should start at time zero when duration is zero");
401
+
402
+ // Test zero intrinsic duration.
403
+ // TODO: Need to find a zero length video.
404
+
405
+ // Test that media elements are removed from their MediaController.
406
+ timing_test(function() {
407
+ var video = getNextVideo();
408
+ at(0.0 * 1000, function() {
409
+ video.controller = new MediaController();
410
+ dt.play(createTestMediaReference(video));
411
+ assert_equals(video.controller, null);
412
+ });
413
+ // Seeking the video will throw if the controller has not been detached.
414
+ at(1.0 * 1000, function() {
415
+ assert_equals(video.currentTime, 1.0);
416
+ });
417
+ }, "Video should be detached from controller when used in MediaReference");
418
+
419
+ // Test limited seek ranges.
420
+ // TODO: Need to find a video with limited seek ranges.
421
+
422
+ // Test that video is paused when its MediaReference is detached from its
423
+ // AnimationPlayer.
424
+ timing_test(function() {
425
+ var video = getNextVideo();
426
+ var player;
427
+ at(0.0 * 1000, function() {
428
+ player = dt.play(createTestMediaReference(video));
429
+ });
430
+ at(1.0 * 1000, function() {
431
+ assert_false(video.paused);
432
+ player.source = null;
433
+ });
434
+ at(2.0 * 1000, function() {
435
+ assert_true(video.paused);
436
+ });
437
+ }, "Video should be paused when MediaReference is detached from its AnimationPlayer");
438
+
439
+ </script>