| LEFT | RIGHT | 
|---|
| 1 /* | 1 /* | 
| 2  * This file is part of Adblock Plus <https://adblockplus.org/>, | 2  * This file is part of Adblock Plus <https://adblockplus.org/>, | 
| 3  * Copyright (C) 2006-2016 Eyeo GmbH | 3  * Copyright (C) 2006-2016 Eyeo GmbH | 
| 4  * | 4  * | 
| 5  * Adblock Plus is free software: you can redistribute it and/or modify | 5  * Adblock Plus is free software: you can redistribute it and/or modify | 
| 6  * it under the terms of the GNU General Public License version 3 as | 6  * it under the terms of the GNU General Public License version 3 as | 
| 7  * published by the Free Software Foundation. | 7  * published by the Free Software Foundation. | 
| 8  * | 8  * | 
| 9  * Adblock Plus is distributed in the hope that it will be useful, | 9  * Adblock Plus is distributed in the hope that it will be useful, | 
| 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| 11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
| 12  * GNU General Public License for more details. | 12  * GNU General Public License for more details. | 
| 13  * | 13  * | 
| 14  * You should have received a copy of the GNU General Public License | 14  * You should have received a copy of the GNU General Public License | 
| 15  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 15  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
| 16  */ | 16  */ | 
| 17 | 17 | 
| 18 package org.adblockplus.libadblockplus.tests; | 18 package org.adblockplus.libadblockplus.tests; | 
| 19 | 19 | 
| 20 import org.adblockplus.libadblockplus.AppInfo; | 20 import org.adblockplus.libadblockplus.AppInfo; | 
| 21 import org.adblockplus.libadblockplus.FileSystemHelper; | 21 import org.adblockplus.libadblockplus.FileSystemUtils; | 
| 22 import org.adblockplus.libadblockplus.JsEngine; | 22 import org.adblockplus.libadblockplus.JsEngine; | 
| 23 import org.adblockplus.libadblockplus.ThrowingWebRequest; | 23 import org.adblockplus.libadblockplus.ThrowingWebRequest; | 
| 24 | 24 | 
| 25 import android.test.AndroidTestCase; | 25 import android.test.AndroidTestCase; | 
| 26 | 26 | 
| 27 import java.io.File; | 27 import java.io.File; | 
| 28 import java.io.IOException; | 28 import java.io.IOException; | 
| 29 | 29 | 
| 30 public abstract class BaseJsTest extends AndroidTestCase | 30 public abstract class BaseJsTest extends AndroidTestCase | 
| 31 { | 31 { | 
| 32     protected JsEngine jsEngine; | 32   protected JsEngine jsEngine; | 
| 33     protected File tmpFileSystemPath; | 33   protected File tmpFileSystemPath; | 
| 34     protected FileSystemHelper fileSystemHelper = new FileSystemHelper(); | 34 | 
|  | 35   protected File buildTmpFileSystemPath() throws IOException | 
|  | 36   { | 
|  | 37     File tmpFileSystemPath = FileSystemUtils | 
|  | 38       .generateUniqueFile(null, ".fs", getContext().getCacheDir()); | 
|  | 39     tmpFileSystemPath.mkdirs(); | 
|  | 40     return tmpFileSystemPath; | 
|  | 41   } | 
| 35 | 42 | 
| 36     protected File buildTmpFileSystemPath() throws IOException | 43   @Override | 
|  | 44   protected void setUp() throws Exception | 
|  | 45   { | 
|  | 46     super.setUp(); | 
|  | 47 | 
|  | 48     jsEngine = new JsEngine(AppInfo.builder().build()); | 
|  | 49     jsEngine.setDefaultLogSystem(); | 
|  | 50 | 
|  | 51     // we need to generate new file system path in order | 
|  | 52     // not to have JsEngine state from the previous test | 
|  | 53     tmpFileSystemPath = buildTmpFileSystemPath(); | 
|  | 54     jsEngine.setDefaultFileSystem(tmpFileSystemPath.getAbsolutePath()); | 
|  | 55     jsEngine.setWebRequest(new ThrowingWebRequest()); | 
|  | 56   } | 
|  | 57 | 
|  | 58   protected void cleanupFileSystem() | 
|  | 59   { | 
|  | 60     if (tmpFileSystemPath != null && tmpFileSystemPath.exists()) | 
| 37     { | 61     { | 
| 38         File tmpFileSystemPath = fileSystemHelper | 62       FileSystemUtils.delete(tmpFileSystemPath, true); | 
| 39             .generateUniqueFileName(null, ".fs", getContext().getCacheDir()); | 63       tmpFileSystemPath = null; | 
| 40         tmpFileSystemPath.mkdirs(); |  | 
| 41         return tmpFileSystemPath; |  | 
| 42     } | 64     } | 
|  | 65   } | 
| 43 | 66 | 
| 44     @Override | 67   @Override | 
| 45     protected void setUp() throws Exception | 68   protected void tearDown() throws Exception | 
| 46     { | 69   { | 
| 47         super.setUp(); | 70     cleanupFileSystem(); | 
| 48 | 71     super.tearDown(); | 
| 49         jsEngine = new JsEngine(AppInfo.builder().build()); | 72   } | 
| 50         jsEngine.setDefaultLogSystem(); |  | 
| 51 |  | 
| 52         // we need to generate new file system path in order |  | 
| 53         // not to have JsEngine state from the previous test |  | 
| 54         tmpFileSystemPath = buildTmpFileSystemPath(); |  | 
| 55         jsEngine.setDefaultFileSystem(tmpFileSystemPath.getAbsolutePath()); |  | 
| 56         jsEngine.setWebRequest(new ThrowingWebRequest()); |  | 
| 57     } |  | 
| 58 |  | 
| 59     protected void cleanupFileSystem() |  | 
| 60     { |  | 
| 61         if (tmpFileSystemPath != null && tmpFileSystemPath.exists()) |  | 
| 62         { |  | 
| 63             fileSystemHelper.delete(tmpFileSystemPath, true); |  | 
| 64             tmpFileSystemPath = null; |  | 
| 65         } |  | 
| 66     } |  | 
| 67 |  | 
| 68     @Override |  | 
| 69     protected void tearDown() throws Exception |  | 
| 70     { |  | 
| 71         cleanupFileSystem(); |  | 
| 72         super.tearDown(); |  | 
| 73     } |  | 
| 74 } | 73 } | 
| LEFT | RIGHT | 
|---|