From e751a396e43f07f15d9b639a850c0c8cbebf9539 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 13 Dec 2015 11:12:45 +0000 Subject: tracklist: fixup idempotent "tl shuffle false" Disabling shuffle should be idempotent. --- lib/dtas/tracklist.rb | 6 ++++-- test/test_tracklist.rb | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/dtas/tracklist.rb b/lib/dtas/tracklist.rb index d3db4e9..b1cdc1e 100644 --- a/lib/dtas/tracklist.rb +++ b/lib/dtas/tracklist.rb @@ -93,9 +93,11 @@ class DTAS::Tracklist # :nodoc: prev = @shuffle if bool list = @shuffle = (prev ||= @list).shuffle - else - list = @list + elsif prev @shuffle = false + list = @list + else + return false end @pos = _update_pos(@pos, prev, list) if @pos >= 0 @goto_pos = _update_pos(@goto_pos, prev, list) if @goto_pos diff --git a/test/test_tracklist.rb b/test/test_tracklist.rb index 4d00227..c918ff7 100644 --- a/test/test_tracklist.rb +++ b/test/test_tracklist.rb @@ -73,6 +73,8 @@ class TestTracklist < Testcase assert_equal false, tl.shuffle tl.instance_variable_set :@pos, 3 + assert_equal false, tl.shuffle = false + before = tl.cur_track 3.times do tl.shuffle = true -- cgit v1.2.3-24-ge0c7