| 
									
										
										
										
											2015-04-09 17:42:54 +08:00
										 |  |  | require "testing_env" | 
					
						
							|  |  |  | require "sandbox" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class SandboxTest < Homebrew::TestCase | 
					
						
							|  |  |  |   def setup | 
					
						
							|  |  |  |     skip "sandbox not implemented" unless Sandbox.available? | 
					
						
							| 
									
										
										
										
											2015-04-28 22:36:54 -04:00
										 |  |  |     @sandbox = Sandbox.new | 
					
						
							| 
									
										
										
										
											2015-04-28 22:37:27 -04:00
										 |  |  |     @dir = Pathname.new(mktmpdir) | 
					
						
							| 
									
										
										
										
											2015-04-28 22:36:54 -04:00
										 |  |  |     @file = @dir/"foo" | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def teardown | 
					
						
							|  |  |  |     @dir.rmtree | 
					
						
							| 
									
										
										
										
											2015-04-09 17:42:54 +08:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_allow_write | 
					
						
							| 
									
										
										
										
											2015-04-28 22:36:54 -04:00
										 |  |  |     @sandbox.allow_write @file | 
					
						
							|  |  |  |     @sandbox.exec "touch", @file | 
					
						
							|  |  |  |     assert_predicate @file, :exist? | 
					
						
							| 
									
										
										
										
											2015-04-09 17:42:54 +08:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_deny_write | 
					
						
							|  |  |  |     shutup do | 
					
						
							| 
									
										
										
										
											2015-04-28 22:36:54 -04:00
										 |  |  |       assert_raises(ErrorDuringExecution) { @sandbox.exec "touch", @file } | 
					
						
							| 
									
										
										
										
											2015-04-09 17:42:54 +08:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2015-04-28 22:36:54 -04:00
										 |  |  |     refute_predicate @file, :exist? | 
					
						
							| 
									
										
										
										
											2015-04-09 17:42:54 +08:00
										 |  |  |   end | 
					
						
							|  |  |  | end |