flashplayer 10.1.3.pre → 10.1.6.pre

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem "sprout", ">= 1.0.pre"
3
+ gem "sprout", ">= 1.0.11.pre"
4
4
 
5
5
  group :development do
6
6
  gem "shoulda"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 10.1.3.pre
1
+ 10.1.6.pre
@@ -17,6 +17,6 @@ begin
17
17
  # Open the SWF:
18
18
  Appscript.app(player).open(MacTypes::Alias.path(swf))
19
19
  rescue LoadError => e
20
- raise "\n\n[ERROR] You must install the rb-appscript gem to use the desktop debug Flash Player, you do this by running:\n\nsudo gem install rb-appscript"
20
+ raise "\n\n[ERROR] You must install the rb-appscript gem to use the desktop debug Flash Player, you do this by running:\n\ngem install rb-appscript"
21
21
  end
22
22
 
@@ -6,12 +6,10 @@ module FlashPlayer
6
6
  attr_accessor :logger
7
7
 
8
8
  def initialize
9
- @config = MMConfig.new
10
9
  @logger = $stdout
11
10
  end
12
11
 
13
12
  def tail thread
14
- @config.create
15
13
  tail_path flashlog_path, thread
16
14
  end
17
15
 
@@ -31,17 +29,7 @@ module FlashPlayer
31
29
  trap("INT") { thread.kill }
32
30
 
33
31
  while thread.alive? do
34
- File.open(path, 'r') do |file|
35
- lines_read = 0
36
- file.readlines.each do |line|
37
- if(lines_read >= lines_put)
38
- logger.puts "[trace] #{line}"
39
- logger.flush
40
- lines_put += 1
41
- end
42
- lines_read += 1
43
- end
44
- end
32
+ lines_put = read_from_file path, lines_put
45
33
  logger.flush
46
34
  sleep(0.2)
47
35
  end
@@ -50,8 +38,27 @@ module FlashPlayer
50
38
  logger.puts ">> Exiting from tailing '#{path}' at user request"
51
39
  end
52
40
 
41
+ def read_from_file path, lines_put
42
+ File.open(path, 'r') do |file|
43
+ lines_read = 0
44
+ file.readlines.each do |line|
45
+ if(lines_read >= lines_put)
46
+ logger.puts "[trace] #{line}"
47
+ logger.flush
48
+ lines_put += 1
49
+ end
50
+ lines_read += 1
51
+ end
52
+ end unless !File.exists?(path)
53
+ lines_put
54
+ end
55
+
53
56
  def flashlog_path
54
- File.join(FlashPlayer.home, 'Logs', 'flashlog.txt')
57
+ begin
58
+ FlashPlayer.flashlog
59
+ rescue FlashPlayer::PathError
60
+ "/dev/null"
61
+ end
55
62
  end
56
63
 
57
64
  def clear_flashlog_at path
@@ -71,9 +78,7 @@ module FlashPlayer
71
78
  end
72
79
 
73
80
  desc "Tail the flashlog.txt and block"
74
- def flashlog args
75
- task args do
76
- reader = FlashPlayer::LogFile.new
77
- reader.tail
78
- end
81
+ task :flashlog do
82
+ reader = FlashPlayer::LogFile.new
83
+ reader.tail
79
84
  end
@@ -18,11 +18,9 @@ module FlashPlayer
18
18
  private
19
19
 
20
20
  def create_if_necessary_at path
21
- write_config(path, content(path)) if(file_blank?(path))
22
- end
23
-
24
- def flashplayer_home
25
- FlashPlayer.home
21
+ if(File.exists?(File.dirname(path)))
22
+ write_config(path, content(flashlog_path)) if(file_blank?(path))
23
+ end
26
24
  end
27
25
 
28
26
  def config_path
@@ -33,28 +31,38 @@ module FlashPlayer
33
31
  end
34
32
  end
35
33
 
34
+ def flashplayer_home
35
+ FlashPlayer.home
36
+ end
37
+
38
+ def flashlog_path
39
+ FlashPlayer.flashlog
40
+ end
41
+
36
42
  def file_blank?(file)
37
43
  !File.exists?(file) || File.read(file).empty?
38
44
  end
39
45
 
40
46
  def write_config(location, content)
41
47
  if(user_confirmation?(location))
48
+ FileUtils.makedirs File.dirname(location)
49
+
42
50
  File.open(location, 'w') do |f|
43
51
  f.write(content)
44
52
  end
45
53
  logger.puts ">> Created file: " + File.expand_path(location)
46
54
  location
47
55
  else
48
- raise FlashPlayer::PathError.new("Unable to create #{file_name} at: #{location}")
56
+ raise FlashPlayer::PathError.new("Unable to create #{location}")
49
57
  end
50
58
  end
51
59
 
52
- def content(file)
60
+ def content(flashlog)
53
61
  return <<EOF
54
62
  ErrorReportingEnable=1
55
63
  MaxWarnings=0
56
64
  TraceOutputEnable=1
57
- TraceOutputFileName=#{file}
65
+ TraceOutputFileName=#{flashlog}
58
66
  EOF
59
67
  end
60
68
 
@@ -21,7 +21,11 @@ module FlashPlayer
21
21
  end
22
22
 
23
23
  def trust
24
- File.join(home, '#Security', 'FlashPlayerTrust', 'sprout.cfg')
24
+ File.join home, '#Security', 'FlashPlayerTrust', 'sprout.cfg'
25
+ end
26
+
27
+ def flashlog
28
+ File.join home, 'Logs', 'flashlog.txt'
25
29
  end
26
30
 
27
31
  private
@@ -27,8 +27,10 @@ module FlashPlayer
27
27
  super
28
28
  #puts ">> invoke with: #{args} and input: #{input}"
29
29
  update_input_if_necessary
30
- update_mm_config
31
- update_trust_config_with input
30
+ execute_safely do
31
+ update_mm_config
32
+ update_trust_config_with input
33
+ end
32
34
  player_thread = launch_player_with input
33
35
  tail_flashlog player_thread
34
36
  end
@@ -46,6 +48,14 @@ module FlashPlayer
46
48
 
47
49
  private
48
50
 
51
+ def execute_safely
52
+ begin
53
+ yield if block_given?
54
+ rescue FlashPlayer::PathError => e
55
+ logger.puts ">> [WARNING] It seems this was the first time FlashPlayer was launched on this system and as a result, the expected folders were not found. Please close the Player and run again - this message should only ever be displayed once."
56
+ end
57
+ end
58
+
49
59
  def update_input_if_necessary
50
60
  return if input.match(/\.swf$/)
51
61
  prerequisites.each do |prereq|
@@ -18,7 +18,8 @@ module FlashPlayer
18
18
  private
19
19
 
20
20
  def create file
21
- FileUtils.makedirs File.dirname(file)
21
+ dir = File.dirname file
22
+ FileUtils.makedirs(dir) unless File.exists?(dir)
22
23
  FileUtils.touch file
23
24
  end
24
25
 
@@ -6,35 +6,62 @@ class MMConfigTest < Test::Unit::TestCase
6
6
  context "An MMConfig" do
7
7
 
8
8
  setup do
9
- @fixture = File.join(fixtures, 'home')
10
- @osx_fp9 = File.join(@fixture, 'Application Support', 'Macromedia')
9
+ @home = File.join(fixtures, 'home')
10
+ @osx_fp = File.join(@home, 'Application Support', 'Macromedia')
11
+ @linux_fp = File.join(@home, '.macromedia', 'Flash_Player')
11
12
 
12
- FileUtils.mkdir_p @fixture
13
- FlashPlayer::MMConfig.any_instance.stubs(:user_confirmation?).returns true
13
+ FileUtils.mkdir_p @home
14
14
 
15
15
  @mm_config = FlashPlayer::MMConfig.new
16
+ @mm_config.stubs(:user_confirmation?).returns true
16
17
  @mm_config.logger = StringIO.new
17
18
  end
18
19
 
19
20
  teardown do
20
- remove_file @fixture
21
+ remove_file @home
21
22
  end
22
23
 
23
- should "create a config file on OS X with FP 9" do
24
- FileUtils.mkdir_p @osx_fp9
24
+ should "ignore failure if flashplayer has never run" do
25
+ # No creation of expected FlashPlayer folders...
26
+
27
+ as_a_mac_system do
28
+ @mm_config.stubs(:system_library).returns @home
29
+ @mm_config.stubs(:flashplayer_home).returns @osx_fp
30
+ @mm_config.create
31
+ end
32
+ end
25
33
 
26
- @mm_config.stubs(:system_library).returns @fixture
27
- @mm_config.stubs(:flashplayer_home).returns @osx_fp9
28
- @mm_config.create
34
+ should "create a config file on OS X with FP 9" do
35
+ FileUtils.mkdir_p @osx_fp
36
+ flashlog = File.expand_path(File.join(@osx_fp, 'Logs', 'flashlog.txt'))
29
37
 
30
- assert_file File.join(@osx_fp9, mm_config_file)
38
+ as_a_mac_system do
39
+ @mm_config.stubs(:system_library).returns @home
40
+ @mm_config.stubs(:flashplayer_home).returns @osx_fp
41
+ @mm_config.stubs(:flashlog_path).returns flashlog
42
+ @mm_config.create
43
+ mm_cfg = File.join(@osx_fp, mm_config_file)
44
+ assert_file mm_cfg do |content|
45
+ assert_matches /#{@flashlog}/, content
46
+ end
47
+ end
31
48
  end
32
49
 
33
- should "create a config file on OS X with FP 10+" do
34
- @mm_config.stubs(:system_home).returns @fixture
35
- @mm_config.create
50
+ should "create a config file on linux" do
51
+ FileUtils.mkdir_p @linux_fp
52
+ flashlog = File.expand_path(File.join(@linux_fp, 'Logs', 'flashlog.txt'))
36
53
 
37
- assert_file File.join(@fixture, mm_config_file)
54
+ as_a_unix_system do
55
+ @mm_config.stubs(:system_library).returns @home
56
+ @mm_config.stubs(:system_home).returns @home
57
+ @mm_config.stubs(:flashlog_path).returns flashlog
58
+ @mm_config.stubs(:flashplayer_home).returns @linux_fp
59
+ @mm_config.create
60
+ mm_cfg = File.join(@home, mm_config_file)
61
+ assert_file mm_cfg do |content|
62
+ assert_matches /#{flashlog}/, content
63
+ end
64
+ end
38
65
  end
39
66
  end
40
67
 
@@ -11,9 +11,31 @@ class FlashPlayerTaskTest < Test::Unit::TestCase
11
11
  # Executable.clear_entities! but 'require'
12
12
  # only runs once per VM run...
13
13
  load 'flashplayer/specification.rb'
14
- @swf = File.join(fixtures, 'AsUnit4.swf')
14
+ @swf = File.join(fixtures, 'AsUnit4.swf')
15
+ @missing_home = File.join(fixtures, 'missing_folder')
16
+ @config_path = File.join(@missing_home, 'fp_config', 'mm.cfg')
15
17
  end
16
18
 
19
+ teardown do
20
+ remove_file @missing_home
21
+ end
22
+
23
+ =begin
24
+ should "wait for SWF even if clean system" do
25
+ # No creation of expected FlashPlayer folders...
26
+
27
+ FlashPlayer.stubs(:home).returns @missing_home
28
+ FlashPlayer::MMConfig.any_instance.stubs(:system_home).returns @missing_home
29
+ FlashPlayer::MMConfig.any_instance.stubs(:config_path).returns @config_path
30
+ FlashPlayer::MMConfig.any_instance.stubs(:user_confirmation?).returns false
31
+
32
+ as_a_mac_system do
33
+ t = flashplayer @swf
34
+ t.invoke
35
+ end
36
+ end
37
+ =end
38
+
17
39
  should "work with swf as task name" do
18
40
  t = flashplayer @swf
19
41
  configure_task t
@@ -24,6 +46,7 @@ class FlashPlayerTaskTest < Test::Unit::TestCase
24
46
  t = flashplayer :run do |t|
25
47
  t.input = @swf
26
48
  end
49
+ file @swf
27
50
  configure_task t
28
51
  t.invoke
29
52
  assert_equal @swf, t.input
@@ -31,6 +54,7 @@ class FlashPlayerTaskTest < Test::Unit::TestCase
31
54
 
32
55
  should "work with swf as prerequisite" do
33
56
  t = flashplayer :run => @swf
57
+ file @swf
34
58
  configure_task t
35
59
  t.invoke
36
60
  assert_equal @swf, t.input
@@ -38,6 +62,7 @@ class FlashPlayerTaskTest < Test::Unit::TestCase
38
62
 
39
63
  should "fire when declared as a dependency" do
40
64
  t = flashplayer :run => @swf
65
+ file @swf
41
66
  configure_task t
42
67
  other = task :parent => :run
43
68
  other.invoke
@@ -6,11 +6,10 @@ class TrustTest < Test::Unit::TestCase
6
6
  context "A Trust instance" do
7
7
 
8
8
  setup do
9
- @fixture = File.join fixtures, 'trust'
10
- @file = File.join @fixture, 'trust.cfg'
11
- @project = File.join fixtures, 'SomeProject'
12
-
13
- @trust = FlashPlayer::Trust.new
9
+ @fixture = File.join fixtures, 'trust'
10
+ @file = File.join @fixture, 'trust.cfg'
11
+ @project = File.join fixtures, 'SomeProject'
12
+ @trust = FlashPlayer::Trust.new
14
13
  @trust.logger = StringIO.new
15
14
  @trust.stubs(:trust_file).returns @file
16
15
  end
metadata CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 10
7
7
  - 1
8
- - 3
8
+ - 6
9
9
  - pre
10
- version: 10.1.3.pre
10
+ version: 10.1.6.pre
11
11
  platform: ruby
12
12
  authors:
13
13
  - Luke Bayes
@@ -27,8 +27,9 @@ dependencies:
27
27
  segments:
28
28
  - 1
29
29
  - 0
30
+ - 11
30
31
  - pre
31
- version: 1.0.pre
32
+ version: 1.0.11.pre
32
33
  type: :runtime
33
34
  prerelease: false
34
35
  version_requirements: *id001