Hello community,

here is the log from the commit of package rubygem-turbolinks for 
openSUSE:Factory checked in at 2015-02-11 16:44:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-turbolinks (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-turbolinks.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-turbolinks"

Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-turbolinks/rubygem-turbolinks.changes    
2014-10-19 19:29:18.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.rubygem-turbolinks.new/rubygem-turbolinks.changes   
    2015-02-11 16:44:14.000000000 +0100
@@ -1,0 +2,5 @@
+Tue Feb 10 07:58:48 UTC 2015 - [email protected]
+
+- updated to version 2.5.3, no changelog
+
+-------------------------------------------------------------------

Old:
----
  turbolinks-2.4.0.gem

New:
----
  turbolinks-2.5.3.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-turbolinks.spec ++++++
--- /var/tmp/diff_new_pack.KTu7Hb/_old  2015-02-11 16:44:15.000000000 +0100
+++ /var/tmp/diff_new_pack.KTu7Hb/_new  2015-02-11 16:44:15.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package rubygem-turbolinks
 #
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-turbolinks
-Version:        2.4.0
+Version:        2.5.3
 Release:        0
 %define mod_name turbolinks
 %define mod_full_name %{mod_name}-%{version}

++++++ turbolinks-2.4.0.gem -> turbolinks-2.5.3.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/README.md new/README.md
--- old/README.md       1970-01-01 01:00:00.000000000 +0100
+++ new/README.md       2014-12-08 15:17:40.000000000 +0100
@@ -68,7 +68,13 @@
 $(document).on("page:receive", stopSpinner);
 ```
 
-DOM transformations that are idempotent are best. If you have transformations 
that are not, hook them to happen only on `page:load` instead of `page:change` 
(as that would run them again on the cached pages).
+DOM transformations that are idempotent are best. If you have transformations 
that are not, bind them to `page:load` (in addition to the initial page load) 
instead of `page:change` (as that would run them again on the cached pages):
+
+```javascript
+// using jQuery for simplicity
+
+$(document).on("ready page:load", nonIdempotentFunction);
+```
 
 Transition Cache: A Speed Boost
 -------------------------------
@@ -82,10 +88,32 @@
 Turbolinks.enableTransitionCache();
 ```
 
-The one drawback is that dramatic differences in appearence between a cached 
copy and new copy may lead to a jarring affect for the end-user. This will be 
especially true for pages that have many moving parts (expandable sections, 
sortable tables, infinite scrolling, etc.).
+The one drawback is that dramatic differences in appearance between a cached 
copy and new copy may lead to a jarring affect for the end-user. This will be 
especially true for pages that have many moving parts (expandable sections, 
sortable tables, infinite scrolling, etc.).
 
 If you find that a page is causing problems, you can have Turbolinks skip 
displaying the cached copy by adding `data-no-transition-cache` to any DOM 
element on the offending page.
 
+Progress Bar
+------------
+
+Because Turbolinks skips the traditional full page reload, browsers won't 
display their native progress bar when changing pages. To fill this void, 
Turbolinks offers an optional JavaScript-and-CSS-based progress bar to display 
page loading progress.
+
+To enable the progress bar, include the following in your JavaScript:
+```javascript
+Turbolinks.enableProgressBar();
+```
+
+The progress bar is implemented on the `<html>` element's pseudo `:before` 
element and can be **customized** by including CSS with higher specificity than 
the included styles. For example:
+
+```css
+html.turbolinks-progress-bar::before {
+  background-color: red !important;
+  height: 5px !important;
+}
+```
+
+In Turbolinks 3.0, the progress bar will be turned on by default.
+
+
 Initialization
 --------------
 
@@ -127,7 +155,7 @@
 jquery.turbolinks
 -----------------
 
-If you have a lot of existing JavaScript that binds elements on 
jQuery.ready(), you can pull the 
[jquery.turbolinks](https://github.com/kossnocorp/jquery.turbolinks) library 
into your project that will trigger ready() when Turbolinks triggers the the 
`page:load` event. It may restore functionality of some libraries.
+If you have a lot of existing JavaScript that binds elements on 
jQuery.ready(), you can pull the 
[jquery.turbolinks](https://github.com/kossnocorp/jquery.turbolinks) library 
into your project that will trigger ready() when Turbolinks triggers the 
`page:load` event. It may restore functionality of some libraries.
 
 Add the gem to your project, then add the following line to your JavaScript 
manifest file, after `jquery.js` but before `turbolinks.js`:
 
@@ -205,6 +233,7 @@
 * [ASP.NET MVC 
Turbolinks](https://github.com/kazimanzurrashid/aspnetmvcturbolinks)
 * [PHP Turbolinks Component](https://github.com/helthe/Turbolinks) (Symfony 
Component)
 * [PHP Turbolinks Package](https://github.com/frenzyapp/turbolinks) (Laravel 
Package)
+* [Grails Turbolinks](http://grails.org/plugin/turbolinks) (Grails Plugin)
 
 Credits
 -------
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/assets/javascripts/turbolinks.js.coffee 
new/lib/assets/javascripts/turbolinks.js.coffee
--- old/lib/assets/javascripts/turbolinks.js.coffee     1970-01-01 
01:00:00.000000000 +0100
+++ new/lib/assets/javascripts/turbolinks.js.coffee     2014-12-08 
15:17:40.000000000 +0100
@@ -1,13 +1,13 @@
 pageCache               = {}
 cacheSize               = 10
 transitionCacheEnabled  = false
+progressBar             = null
 
 currentState            = null
 loadedAssets            = null
 
 referer                 = null
 
-createDocument          = null
 xhr                     = null
 
 EVENTS =
@@ -26,10 +26,11 @@
 
   rememberReferer()
   cacheCurrentPage()
+  progressBar?.start()
 
   if transitionCacheEnabled and cachedPage = transitionCacheFor(url.absolute)
     fetchHistory cachedPage
-    fetchReplacement url
+    fetchReplacement url, null, false
   else
     fetchReplacement url, resetScrollPosition
 
@@ -40,7 +41,15 @@
 enableTransitionCache = (enable = true) ->
   transitionCacheEnabled = enable
 
-fetchReplacement = (url, onLoadFunction = =>) ->
+enableProgressBar = (enable = true) ->
+  return unless browserSupportsTurbolinks
+  if enable
+    progressBar ?= new ProgressBar 'html'
+  else
+    progressBar?.uninstall()
+    progressBar = null
+
+fetchReplacement = (url, onLoadFunction, showProgressBar = true) ->
   triggerEvent EVENTS.FETCH, url: url.absolute
 
   xhr?.abort()
@@ -54,13 +63,21 @@
 
     if doc = processResponse()
       reflectNewUrl url
+      reflectRedirectedUrl()
       changePage extractTitleAndBody(doc)...
       manuallyTriggerHashChangeForFirefox()
-      reflectRedirectedUrl()
-      onLoadFunction()
+      onLoadFunction?()
       triggerEvent EVENTS.LOAD
     else
-      document.location.href = url.absolute
+      document.location.href = crossOriginRedirect() or url.absolute
+
+  if progressBar and showProgressBar
+    xhr.onprogress = (event) =>
+      percent = if event.lengthComputable
+        event.loaded / event.total * 100
+      else
+        progressBar.value + (100 - progressBar.value) / 10
+      progressBar.advanceTo(percent)
 
   xhr.onloadend = -> xhr = null
   xhr.onerror   = -> document.location.href = url.absolute
@@ -110,6 +127,7 @@
   setAutofocusElement()
   executeScriptTags() if runScripts
   currentState = window.history.state
+  progressBar?.done()
   triggerEvent EVENTS.CHANGE
   triggerEvent EVENTS.UPDATE
 
@@ -134,7 +152,7 @@
   autofocusElement = (list = document.querySelectorAll 'input[autofocus], 
textarea[autofocus]')[list.length - 1]
   if autofocusElement and document.activeElement isnt autofocusElement
     autofocusElement.focus()
-    
+
 reflectNewUrl = (url) ->
   if (url = new ComponentUrl url).absolute isnt referer
     window.history.pushState { turbolinks: true, url: url.absolute }, '', 
url.absolute
@@ -143,7 +161,10 @@
   if location = xhr.getResponseHeader 'X-XHR-Redirected-To'
     location = new ComponentUrl location
     preservedHash = if location.hasNoHash() then document.location.hash else ''
-    window.history.replaceState currentState, '', location.href + preservedHash
+    window.history.replaceState window.history.state, '', location.href + 
preservedHash
+
+crossOriginRedirect = ->
+  redirect if (redirect = xhr.getResponseHeader('Location'))? and (new 
ComponentUrl(redirect)).crossOrigin()
 
 rememberReferer = ->
   referer = document.location.href
@@ -204,7 +225,7 @@
     400 <= xhr.status < 600
 
   validContent = ->
-    (contentType = xhr.getResponseHeader('Content-Type'))? and 
+    (contentType = xhr.getResponseHeader('Content-Type'))? and
       contentType.match 
/^(?:text\/html|application\/xhtml\+xml|application\/xml)(?:;|$)/
 
   extractTrackAssets = (doc) ->
@@ -239,74 +260,18 @@
     if current.token? and latest? and current.token isnt latest
       current.node.setAttribute 'content', latest
 
-browserCompatibleDocumentParser = ->
-  createDocumentUsingParser = (html) ->
-    (new DOMParser).parseFromString html, 'text/html'
-
-  createDocumentUsingDOM = (html) ->
-    doc = document.implementation.createHTMLDocument ''
-    doc.documentElement.innerHTML = html
-    doc
-
-  createDocumentUsingWrite = (html) ->
-    doc = document.implementation.createHTMLDocument ''
-    doc.open 'replace'
-    doc.write html
-    doc.close()
-    doc
-
-  createDocumentUsingFragment = (html) ->
-    head = html.match(/<head[^>]*>([\s\S.]*)<\/head>/i)?[0] or '<head></head>'
-    body = html.match(/<body[^>]*>([\s\S.]*)<\/body>/i)?[0] or '<body></body>'
-    htmlWrapper = document.createElement 'html'
-    htmlWrapper.innerHTML = head + body
-    doc = document.createDocumentFragment()
-    doc.appendChild htmlWrapper
-    doc
-
-  # Use createDocumentUsingParser if DOMParser is defined and natively
-  # supports 'text/html' parsing (Firefox 12+, IE 10)
-  #
-  # Use createDocumentUsingDOM if createDocumentUsingParser throws an exception
-  # due to unsupported type 'text/html' (Firefox < 12, Opera)
-  #
-  # Use createDocumentUsingWrite if:
-  #  - DOMParser isn't defined
-  #  - createDocumentUsingParser returns null due to unsupported type 
'text/html' (Chrome, Safari)
-  #  - createDocumentUsingDOM doesn't create a valid HTML document 
(safeguarding against potential edge cases)
-  #
-  # Use createDocumentUsingFragment if the previously selected parser does not
-  # correctly parse <form> tags. (Safari 7.1+ - see 
github.com/rails/turbolinks/issues/408)
-  buildTestsUsing = (createMethod) ->
-    buildTest = (fallback, passes) ->
-      passes: passes()
-      fallback: fallback
-
-    structureTest = buildTest createDocumentUsingWrite, =>
-      (createMethod '<html><body><p>test')?.body?.childNodes.length is 1
-
-    formNestingTest = buildTest createDocumentUsingFragment, =>
-      (createMethod 
'<html><body><form></form><div></div></body></html>')?.body?.childNodes.length 
is 2
-
-    [structureTest, formNestingTest]
-
-  try
-    if window.DOMParser
-      docTests = buildTestsUsing createDocumentUsingParser
-      createDocumentUsingParser
-  catch e
-    docTests = buildTestsUsing createDocumentUsingDOM
-    createDocumentUsingDOM
-  finally
-    for docTest in docTests
-      return docTest.fallback unless docTest.passes
-
+createDocument = (html) ->
+  doc = document.documentElement.cloneNode()
+  doc.innerHTML = html
+  doc.head = doc.querySelector 'head'
+  doc.body = doc.querySelector 'body'
+  doc
 
 # The ComponentUrl class converts a basic URL string into an object
-# that behaves similarly to document.location.  
+# that behaves similarly to document.location.
 #
-# If an instance is created from a relative URL, the current document 
-# is used to fill in the missing attributes (protocol, host, port).  
+# If an instance is created from a relative URL, the current document
+# is used to fill in the missing attributes (protocol, host, port).
 class ComponentUrl
   constructor: (@original = document.location.href) ->
     return @original if @original.constructor is ComponentUrl
@@ -319,6 +284,9 @@
 
   hasNoHash: -> @hash.length is 0
 
+  crossOrigin: ->
+    @origin isnt (new ComponentUrl).origin
+
   _parse: ->
     (@link ?= document.createElement 'a').href = @original
     { @href, @protocol, @host, @hostname, @port, @pathname, @search, @hash } = 
@link
@@ -345,15 +313,12 @@
     super
 
   shouldIgnore: ->
-    @_crossOrigin() or 
-      @_anchored() or 
-      @_nonHtml() or 
-      @_optOut() or 
+    @crossOrigin() or
+      @_anchored() or
+      @_nonHtml() or
+      @_optOut() or
       @_target()
 
-  _crossOrigin: ->
-    @origin isnt (new ComponentUrl).origin
-    
   _anchored: ->
     (@hash.length > 0 or @href.charAt(@href.length - 1) is '#') and
       (@withoutHash() is (new ComponentUrl).withoutHash())
@@ -373,9 +338,9 @@
 
 
 # The Click class handles clicked links, verifying if Turbolinks should
-# take control by inspecting both the event and the link. If it should, 
-# the page change process is initiated. If not, control is passed back 
-# to the browser for default functionality. 
+# take control by inspecting both the event and the link. If it should,
+# the page change process is initiated. If not, control is passed back
+# to the browser for default functionality.
 class Click
   @installHandlerLast: (event) ->
     unless event.defaultPrevented
@@ -390,7 +355,7 @@
     @_extractLink()
     if @_validForTurbolinks()
       visit @link.href unless pageChangePrevented(@link.absolute)
-      @event.preventDefault() 
+      @event.preventDefault()
 
   _extractLink: ->
     link = @event.target
@@ -401,13 +366,113 @@
     @link? and not (@link.shouldIgnore() or @_nonStandardClick())
 
   _nonStandardClick: ->
-    @event.which > 1 or 
-      @event.metaKey or 
-      @event.ctrlKey or 
-      @event.shiftKey or 
+    @event.which > 1 or
+      @event.metaKey or
+      @event.ctrlKey or
+      @event.shiftKey or
       @event.altKey
 
 
+class ProgressBar
+  className = 'turbolinks-progress-bar'
+
+  constructor: (@elementSelector) ->
+    @value = 0
+    @content = ''
+    @speed = 300
+    # Setting the opacity to a value < 1 fixes a display issue in Safari 6 and
+    # iOS 6 where the progress bar would fill the entire page.
+    @opacity = 0.99
+    @install()
+
+  install: ->
+    @element = document.querySelector(@elementSelector)
+    @element.classList.add(className)
+    @styleElement = document.createElement('style')
+    document.head.appendChild(@styleElement)
+    @_updateStyle()
+
+  uninstall: ->
+    @element.classList.remove(className)
+    document.head.removeChild(@styleElement)
+
+  start: ->
+    @advanceTo(5)
+
+  advanceTo: (value) ->
+    if value > @value <= 100
+      @value = value
+      @_updateStyle()
+
+      if @value is 100
+        @_stopTrickle()
+      else if @value > 0
+        @_startTrickle()
+
+  done: ->
+    if @value > 0
+      @advanceTo(100)
+      @_reset()
+
+  _reset: ->
+    originalOpacity = @opacity
+
+    setTimeout =>
+      @opacity = 0
+      @_updateStyle()
+    , @speed / 2
+
+    setTimeout =>
+      @value = 0
+      @opacity = originalOpacity
+      @_withSpeed(0, => @_updateStyle(true))
+    , @speed
+
+  _startTrickle: ->
+    return if @trickling
+    @trickling = true
+    setTimeout(@_trickle, @speed)
+
+  _stopTrickle: ->
+    delete @trickling
+
+  _trickle: =>
+    return unless @trickling
+    @advanceTo(@value + Math.random() / 2)
+    setTimeout(@_trickle, @speed)
+
+  _withSpeed: (speed, fn) ->
+    originalSpeed = @speed
+    @speed = speed
+    result = fn()
+    @speed = originalSpeed
+    result
+
+  _updateStyle: (forceRepaint = false) ->
+    @_changeContentToForceRepaint() if forceRepaint
+    @styleElement.textContent = @_createCSSRule()
+
+  _changeContentToForceRepaint: ->
+    @content = if @content is '' then ' ' else ''
+
+  _createCSSRule: ->
+    """
+    #{@elementSelector}.#{className}::before {
+      content: '#{@content}';
+      position: fixed;
+      top: 0;
+      left: 0;
+      z-index: 2000;
+      background-color: #0076ff;
+      height: 3px;
+      opacity: #{@opacity};
+      width: #{@value}%;
+      transition: width #{@speed}ms ease-out, opacity #{@speed / 2}ms ease-in;
+      transform: translate3d(0,0,0);
+    }
+    """
+
+
 # Delay execution of function long enough to miss the popstate event
 # some browsers fire on the initial page load.
 bypassOnLoadPopstate = (fn) ->
@@ -436,7 +501,6 @@
 initializeTurbolinks = ->
   rememberCurrentUrl()
   rememberCurrentState()
-  createDocument = browserCompatibleDocumentParser()
 
   document.addEventListener 'click', Click.installHandlerLast, true
 
@@ -487,7 +551,8 @@
   visit,
   pagesCached,
   enableTransitionCache,
+  enableProgressBar,
   allowLinkExtensions: Link.allowExtensions,
   supported: browserSupportsTurbolinks,
   EVENTS: clone(EVENTS)
-}
\ No newline at end of file
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/turbolinks/version.rb 
new/lib/turbolinks/version.rb
--- old/lib/turbolinks/version.rb       1970-01-01 01:00:00.000000000 +0100
+++ new/lib/turbolinks/version.rb       2014-12-08 15:17:40.000000000 +0100
@@ -1,3 +1,3 @@
 module Turbolinks
-  VERSION = '2.4.0'
-end
\ No newline at end of file
+  VERSION = '2.5.3'
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        1970-01-01 01:00:00.000000000 +0100
+++ new/metadata        2014-12-08 15:17:40.000000000 +0100
@@ -1,27 +1,27 @@
 --- !ruby/object:Gem::Specification
 name: turbolinks
 version: !ruby/object:Gem::Version
-  version: 2.4.0
+  version: 2.5.3
 platform: ruby
 authors:
 - David Heinemeier Hansson
 autorequire: 
 bindir: bin
 cert_chain: []
-date: 2014-10-03 00:00:00.000000000 Z
+date: 2014-12-08 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
   name: coffee-rails
   requirement: !ruby/object:Gem::Requirement
     requirements:
-    - - '>='
+    - - ">="
       - !ruby/object:Gem::Version
         version: '0'
   type: :runtime
   prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
     requirements:
-    - - '>='
+    - - ">="
       - !ruby/object:Gem::Version
         version: '0'
 description: 
@@ -30,6 +30,8 @@
 extensions: []
 extra_rdoc_files: []
 files:
+- MIT-LICENSE
+- README.md
 - lib/assets/javascripts/turbolinks.js.coffee
 - lib/turbolinks.rb
 - lib/turbolinks/cookies.rb
@@ -38,14 +40,14 @@
 - lib/turbolinks/x_domain_blocker.rb
 - lib/turbolinks/xhr_headers.rb
 - lib/turbolinks/xhr_url_for.rb
-- README.md
-- MIT-LICENSE
 - test/config.ru
 - test/dummy.gif
 - test/index.html
 - test/manifest.appcache
 - test/offline.html
 - test/other.html
+- test/redirect1.html
+- test/redirect2.html
 - test/reload.html
 - test/withoutextension
 homepage: https://github.com/rails/turbolinks/
@@ -58,20 +60,19 @@
 - lib
 required_ruby_version: !ruby/object:Gem::Requirement
   requirements:
-  - - '>='
+  - - ">="
     - !ruby/object:Gem::Version
       version: '0'
 required_rubygems_version: !ruby/object:Gem::Requirement
   requirements:
-  - - '>='
+  - - ">="
     - !ruby/object:Gem::Version
       version: '0'
 requirements: []
 rubyforge_project: 
-rubygems_version: 2.0.3
+rubygems_version: 2.2.2
 signing_key: 
 specification_version: 4
 summary: Turbolinks makes following links in your web application faster (use 
with
   Rails Asset Pipeline)
 test_files: []
-has_rdoc: 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/test/config.ru new/test/config.ru
--- old/test/config.ru  1970-01-01 01:00:00.000000000 +0100
+++ new/test/config.ru  2014-12-08 15:17:40.000000000 +0100
@@ -7,6 +7,29 @@
   env.append_path File.join(Root, "lib", "assets", "javascripts")
 end
 
+class SlowResponse
+  CHUNKS = ['<html><body>', '.'*50, '.'*20, '<a 
href="/index.html">Home</a></body></html>']
+
+  def call(env)
+    [200, headers, self]
+  end
+
+  def each
+    CHUNKS.each do |part|
+      sleep rand(0.3..0.8)
+      yield part
+    end
+  end
+
+  def length
+    CHUNKS.join.length
+  end
+
+  def headers
+    { "Content-Length" => length.to_s, "Content-Type" => "text/html", 
"Cache-Control" => "no-cache, no-store, must-revalidate" }
+  end
+end
+
 map "/js" do
   run Assets
 end
@@ -19,6 +42,14 @@
   run Rack::File.new(File.join(Root, "test", "withoutextension"), 
"Content-Type" => "text/html")
 end
 
+map "/slow-response" do
+  run SlowResponse.new
+end
+
+map "/bounce" do
+  run Proc.new{ [200, { "X-XHR-Redirected-To" => "redirect1.html", 
"Content-Type" => "text/html" }, File.open( File.join( Root, "test", 
"redirect1.html" ) ) ] }
+end
+
 map "/" do
   run Rack::Directory.new(File.join(Root, "test"))
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/test/index.html new/test/index.html
--- old/test/index.html 1970-01-01 01:00:00.000000000 +0100
+++ new/test/index.html 2014-12-08 15:17:40.000000000 +0100
@@ -5,6 +5,8 @@
   <title>Home</title>
   <script type="text/javascript" src="/js/turbolinks.js"></script>
   <script type="text/javascript">
+    Turbolinks.enableProgressBar();
+
     document.addEventListener("page:change", function() {
       console.log("page changed");
     });
@@ -19,8 +21,9 @@
   </script>
 </head>
 <body class="page-index">
-  <ul style="margin-top:200px;">
+  <ul style="margin-top:20px;">
     <li><a href="/other.html">Other page</a></li>
+    <li><a href="/slow-response">Slow loading page for progress bar</a></li>
     <li><a href="/other.html"><span>Wrapped link</span></a></li>
     <li><a href="/withoutextension">Without extension</a></li>
     <li><a href="/withoutextension?sort=user.name">Without extension with 
query params</a></li>
@@ -28,6 +31,7 @@
     <li><a href="/other.html" onclick="if(!confirm('follow link?')) { return 
false}">Confirm Fire Order</a></li>
     <li><a href="/reload.html"><span>New assets track </span></a></li>
     <li><a href="/dummy.gif?12345">Query Param Image Link</a></li>
+    <li><a href="/bounce">Redirect</a></li>
     <li><a href="#">Hash link</a></li>
     <li><a href="/reload.html#foo">New assets track with hash link</a></li>
     <li><h5>If you stop the server or go into airplane/offline mode</h5></li>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/test/redirect1.html new/test/redirect1.html
--- old/test/redirect1.html     1970-01-01 01:00:00.000000000 +0100
+++ new/test/redirect1.html     2014-12-08 15:17:40.000000000 +0100
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="utf-8">
+  <title>Home</title>
+  <script type="text/javascript" src="/js/turbolinks.js"></script>
+</head>
+<body class="page-other">
+  Should show /redirect1.html as path
+  <ul>
+    <li>Click <a href="/redirect2.html">Redirect 2</a></li>
+  </ul>
+
+</body>
+</html>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/test/redirect2.html new/test/redirect2.html
--- old/test/redirect2.html     1970-01-01 01:00:00.000000000 +0100
+++ new/test/redirect2.html     2014-12-08 15:17:40.000000000 +0100
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="utf-8">
+  <title>Home</title>
+  <script type="text/javascript" src="/js/turbolinks.js"></script>
+</head>
+<body class="page-other">
+  Hit back button twice. It should go back to home page.
+</body>
+</html>

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to