Delete TestActivity, TestOptions.

multisite^2
Floens 8 years ago
parent 0ee851f30e
commit 28edc2d0ba
  1. 2
      Clover/app/src/main/AndroidManifest.xml
  2. 16
      Clover/app/src/main/java/org/floens/chan/core/settings/ChanSettings.java
  3. 302
      Clover/app/src/main/java/org/floens/chan/test/TestActivity.java

@ -76,8 +76,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
</activity>
<activity android:name=".test.TestActivity" />
<service
android:name=".ui.service.WatchNotifier"
android:exported="false" />

@ -163,22 +163,6 @@ public class ChanSettings {
public static final LongSetting updateCheckTime;
public static final LongSetting updateCheckInterval;
public enum TestOptions implements OptionSettingItem {
ONE("one"),
TWO("two"),
THREE("three");
String name;
TestOptions(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
static {
SharedPreferences p = AndroidUtils.getPreferences();

@ -1,302 +0,0 @@
/*
* Clover - 4chan browser https://github.com/Floens/Clover/
* Copyright (C) 2014 Floens
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.floens.chan.test;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import org.floens.chan.Chan;
import org.floens.chan.chan.ChanLoader;
import org.floens.chan.core.cache.FileCache;
import org.floens.chan.core.exception.ChanLoaderException;
import org.floens.chan.core.model.ChanThread;
import org.floens.chan.core.model.Loadable;
import org.floens.chan.core.model.Post;
import org.floens.chan.ui.theme.ThemeHelper;
import org.floens.chan.utils.Logger;
import java.io.File;
// Poor mans unit testing.
// Move to proper unit testing when the gradle plugin fully supports it.
public class TestActivity extends Activity implements View.OnClickListener {
private static final String TAG = "FileCacheTest";
private final Handler handler = new Handler(Looper.getMainLooper());
private Button clearCache;
private Button stats;
private Button simpleTest;
private Button cacheTest;
private Button timeoutTest;
private FileCache fileCache;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ThemeHelper.getInstance().setupContext(this);
LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setOrientation(LinearLayout.VERTICAL);
clearCache = new Button(this);
clearCache.setText("Clear cache");
clearCache.setOnClickListener(this);
linearLayout.addView(clearCache);
stats = new Button(this);
stats.setText("Stats");
stats.setOnClickListener(this);
linearLayout.addView(stats);
simpleTest = new Button(this);
simpleTest.setText("Test download and cancel");
simpleTest.setOnClickListener(this);
linearLayout.addView(simpleTest);
cacheTest = new Button(this);
cacheTest.setText("Test cache size");
cacheTest.setOnClickListener(this);
linearLayout.addView(cacheTest);
timeoutTest = new Button(this);
timeoutTest.setText("Test multiple parallel");
timeoutTest.setOnClickListener(this);
linearLayout.addView(timeoutTest);
setContentView(linearLayout);
File cacheDir = getExternalCacheDir() != null ? getExternalCacheDir() : getCacheDir();
File fileCacheDir = new File(cacheDir, "filecache");
fileCache = new FileCache(fileCacheDir, 50 * 1024 * 1024, Chan.getInstance().getUserAgent());
}
@Override
public void onClick(View v) {
if (v == clearCache) {
clearCache();
} else if (v == stats) {
stats();
} else if (v == simpleTest) {
testDownloadAndCancel();
} else if (v == cacheTest) {
testCache();
} else if (v == timeoutTest) {
testTimeout();
}
}
public void clearCache() {
fileCache.clearCache();
}
public void stats() {
fileCache.logStats();
}
public void testDownloadAndCancel() {
// 1.9MB file of the clover Logger.i(TAG,
final String testImage = "http://a.pomf.se/ndbolc.png";
final File cacheFile = fileCache.get(testImage);
Logger.i(TAG, "Downloading " + testImage);
final FileCache.FileCacheDownloader downloader = fileCache.downloadFile(testImage, new FileCache.DownloadedCallback() {
@Override
public void onProgress(long downloaded, long total, boolean done) {
Logger.i(TAG, "onProgress " + downloaded + "/" + total + " " + done);
}
@Override
public void onSuccess(File file) {
Logger.i(TAG, "onSuccess " + file.exists());
}
@Override
public void onFail(boolean notFound) {
Logger.i(TAG, "onFail Cachefile exists() = " + cacheFile.exists());
}
});
handler.postDelayed(new Runnable() {
@Override
public void run() {
fileCache.downloadFile(testImage, new FileCache.DownloadedCallback() {
@Override
public void onProgress(long downloaded, long total, boolean done) {
Logger.i(TAG, "2nd progress " + downloaded + "/" + total);
}
@Override
public void onSuccess(File file) {
Logger.i(TAG, "2nd onSuccess " + file.exists());
}
@Override
public void onFail(boolean notFound) {
Logger.i(TAG, "2nd onFail Cachefile exists() = " + cacheFile.exists());
}
});
}
}, 200);
handler.postDelayed(new Runnable() {
@Override
public void run() {
Logger.i(TAG, "Cancelling download!");
downloader.cancel();
}
}, 500);
handler.postDelayed(new Runnable() {
@Override
public void run() {
Logger.i(TAG, "File exists() = " + cacheFile.exists());
}
}, 600);
handler.postDelayed(new Runnable() {
@Override
public void run() {
final File cache404File = fileCache.get(testImage + "404");
fileCache.downloadFile(testImage + "404", new FileCache.DownloadedCallback() {
@Override
public void onProgress(long downloaded, long total, boolean done) {
Logger.i(TAG, "404 progress " + downloaded + "/" + total + " " + done);
}
@Override
public void onSuccess(File file) {
Logger.i(TAG, "404 onSuccess " + file.exists());
}
@Override
public void onFail(boolean notFound) {
Logger.i(TAG, "404 onFail " + cache404File.exists());
}
});
}
}, 1000);
}
private void testCache() {
Loadable loadable = Loadable.forCatalog("g");
ChanLoader loader = new ChanLoader(loadable);
loader.addListener(new ChanLoader.ChanLoaderCallback() {
@Override
public void onChanLoaderData(ChanThread result) {
for (Post post : result.posts) {
if (post.hasImage) {
final String imageUrl = post.imageUrl;
fileCache.downloadFile(imageUrl, new FileCache.DownloadedCallback() {
@Override
public void onProgress(long downloaded, long total, boolean done) {
Logger.i(TAG, "Progress for " + imageUrl + " " + downloaded + "/" + total + " " + done);
}
@Override
public void onSuccess(File file) {
Logger.i(TAG, "onSuccess for " + imageUrl + " exists() = " + file.exists());
}
@Override
public void onFail(boolean notFound) {
Logger.i(TAG, "onFail for " + imageUrl);
}
});
}
}
}
@Override
public void onChanLoaderError(ChanLoaderException error) {
}
});
loader.requestData();
}
private void testTimeout() {
testTimeoutInner("https://i.4cdn.org/hr/1429923649068.jpg", fileCache, 0);
handler.postDelayed(new Runnable() {
@Override
public void run() {
testTimeoutInner("https://i.4cdn.org/hr/1430058524427.jpg", fileCache, 0);
}
}, 200);
handler.postDelayed(new Runnable() {
@Override
public void run() {
testTimeoutInner("https://i.4cdn.org/hr/1430058627352.jpg", fileCache, 0);
}
}, 400);
handler.postDelayed(new Runnable() {
@Override
public void run() {
testTimeoutInner("https://i.4cdn.org/hr/1430058580015.jpg", fileCache, 0);
}
}, 600);
}
private void testTimeoutInner(final String url, final FileCache fileCache, final int tries) {
final File cacheFile = fileCache.get(url);
Logger.i(TAG, "Downloading " + url + " try " + tries);
final FileCache.FileCacheDownloader downloader = fileCache.downloadFile(url, new FileCache.DownloadedCallback() {
@Override
public void onProgress(long downloaded, long total, boolean done) {
Logger.i(TAG, "onProgress " + url + " " + downloaded + "/" + total);
}
@Override
public void onSuccess(File file) {
Logger.i(TAG, "onSuccess " + file.exists());
}
@Override
public void onFail(boolean notFound) {
Logger.i(TAG, "onFail Cachefile exists() = " + cacheFile.exists());
}
});
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (downloader == null) {
Logger.i(TAG, "Downloader null, cannot cancel");
} else {
downloader.cancel();
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (tries < 10) {
testTimeoutInner(url, fileCache, tries + 1);
} else {
fileCache.logStats();
}
}
}, 500);
}
}
}, 1000);
}
}
Loading…
Cancel
Save