Skip to content

Commit

Permalink
Merge pull request #30 from irinil/testSuite
Browse files Browse the repository at this point in the history
Merged Missing commits
  • Loading branch information
irinil committed Jun 24, 2020
2 parents 34c13ce + 1f54ceb commit c75c204
Show file tree
Hide file tree
Showing 32 changed files with 149 additions and 144 deletions.
33 changes: 22 additions & 11 deletions build.gradle
Expand Up @@ -3,7 +3,6 @@ buildscript {
jcenter()
google()


}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.3'
Expand All @@ -13,8 +12,6 @@ buildscript {
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao'



allprojects {
repositories {
jcenter()
Expand All @@ -25,16 +22,30 @@ allprojects {
}
}
dependencies {
implementation 'com.google.android.gms:play-services:4.+'
//firebase
implementation 'com.google.firebase:firebase-crashlytics:17.0.1'
implementation 'com.google.firebase:firebase-analytics:17.4.3'
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
//google api
implementation 'com.google.android.gms:play-services-base:17.3.0'
implementation 'com.google.android.gms:play-services-basement:17.3.0'
implementation 'com.google.android.gms:play-services-tasks:17.1.0'
implementation 'com.google.android.gms:play-services-location:17.0.0'
implementation 'com.google.android.gms:play-services-analytics:17.0.0'
implementation 'com.google.android.gms:play-services-maps:17.0.0'
//greenDao
implementation 'org.roboguice:roboguice:2.0'
implementation 'org.greenrobot:greendao:3.3.0'
implementation 'org.greenrobot:greendao-generator:3.2.0'
implementation files('libs/nineoldandroids-2.4.0.jar')
implementation 'org.greenrobot:greendao-generator:3.3.0'
//hive-Mq
implementation 'com.github.hivemq.hivemq-community-edition:hivemq-community-edition:2020.1'
implementation group: 'com.hivemq', name: 'hivemq-mqtt-client', version: '1.2.0'
implementation 'com.android.support:support-v4:28.0.0'
//implementation 'com.android.support:design:28.0.0'
//compile fileTree(dir: 'libs', include: '*.jar')
//android X migration
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.preference:preference:1.1.1'

//other libraries
implementation files('libs/nineoldandroids-2.4.0.jar')
implementation files('libs/swipelistview-1.0.jar')
implementation files('libs/sshlib-v1.1.jar')
implementation files('libs/alfresco-jlan.jar')
Expand All @@ -54,15 +65,15 @@ dependencies {
implementation 'com.android.support.test:rules:1.0.2'
implementation 'com.android.support.test:runner:1.0.2'
// Optional -- UI testing with Espresso
// androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
// Optional -- UI testing with UI Automator for Android X
//implementation 'androidx.test.uiautomator:uiautomator:2.2.0'
// implementation 'org.powermock:powermock:1.6.5'
// implementation 'org.powermock:powermock-module-junit4:1.7.4'
// implementation 'org.powermock:powermock-api-mockito:1.7.4'
implementation 'com.android.support:multidex:1.0.3'
// Optional -- Robolectric environment
testImplementation 'org.robolectric:robolectric:4.3'
testImplementation 'org.robolectric:robolectric:4.3.1'

}

Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
@@ -1,3 +1,3 @@
android.useAndroidX=true
#android.enableJetifier=true
android.enableJetifier=true
android.enableUnitTestBinaryResources=true
7 changes: 3 additions & 4 deletions src/main/java/de/tudarmstadt/informatik/hostage/Handler.java
Expand Up @@ -48,8 +48,7 @@ public class Handler implements Runnable {

SharedPreferences pref;

private int attack_id;
//private int message_id = 0;
private long attack_id;
private String externalIP;
private String BSSID;
private String SSID;
Expand Down Expand Up @@ -189,8 +188,8 @@ public void run() {
*/
private synchronized void getAndIncrementAttackID(SharedPreferences pref) {
Editor editor = pref.edit();
attack_id = pref.getInt("ATTACK_ID_COUNTER", 0);
editor.putInt("ATTACK_ID_COUNTER", attack_id + 1);
attack_id = pref.getLong("ATTACK_ID_COUNTER", 0);
editor.putLong("ATTACK_ID_COUNTER", attack_id + 1);
editor.commit();
}

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/de/tudarmstadt/informatik/hostage/Hostage.java
Expand Up @@ -37,12 +37,12 @@
import android.os.IBinder;
import android.preference.PreferenceManager;

import android.support.v4.app.NotificationCompat;
import android.support.v4.content.LocalBroadcastManager;
import android.util.Log;
import android.widget.Toast;


import androidx.core.app.NotificationCompat;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;

import de.tudarmstadt.informatik.hostage.commons.HelperUtils;
import de.tudarmstadt.informatik.hostage.location.MyLocationManager;
Expand Down
Expand Up @@ -11,7 +11,8 @@
import android.location.LocationManager;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;

import androidx.annotation.RequiresApi;


/**
Expand Down
Expand Up @@ -94,8 +94,10 @@ public AttackRecord(boolean autoincrement){
this.sync_id = attack_id;

SyncDevice currentDevice = SyncDevice.currentDevice();
currentDevice.setHighest_attack_id(attack_id);
this.setDevice(currentDevice.getDeviceID());
if(currentDevice!=null) {
currentDevice.setHighest_attack_id(attack_id);
this.setDevice(currentDevice.getDeviceID());
}
}

}
Expand Down
Expand Up @@ -102,7 +102,6 @@ public static void logMultiStageAttack(Context context,AttackRecord attackRecord

}

//private HostageDBOpenHelper mDbHelper;
private DaoSession dbSession;
private DAOHelper daoHelper;
public Logger() {
Expand All @@ -114,7 +113,6 @@ public void onCreate() {
super.onCreate();
dbSession = HostageApplication.getInstances().getDaoSession();
daoHelper = new DAOHelper(dbSession,getApplicationContext());
//mDbHelper = new HostageDBOpenHelper(getApplicationContext());
}

private void handleActionLog(MessageRecord record) {
Expand Down
Expand Up @@ -4,13 +4,7 @@
import android.database.Cursor;
import android.os.Build;
import android.preference.PreferenceManager;
import android.support.annotation.RequiresApi;


import org.greenrobot.greendao.query.Query;
import org.greenrobot.greendao.query.QueryBuilder;
import org.greenrobot.greendao.query.WhereCondition;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
Expand Down Expand Up @@ -174,7 +168,7 @@ public synchronized int getAttackPerProtocolCount(String protocol) {
* @param attack_id The attack id to match the query against.
* @return The number of different attacks in the database since the given attack_id.
*/
public synchronized int getAttackPerProtocolCount(String protocol, int attack_id) {
public synchronized int getAttackPerProtocolCount(String protocol, long attack_id) {
AttackRecordDao recordDao = this.daoSession.getAttackRecordDao();

QueryBuilder<AttackRecord> qb = recordDao.queryBuilder();
Expand All @@ -196,7 +190,7 @@ public synchronized int getAttackPerProtocolCount(String protocol, int attack_id
* @param bssid The BSSID of the access point.
* @return The number of different attacks in the database since the given attack_id.
*/
public synchronized int getAttackPerProtocolCount(String protocol, int attack_id, String bssid) {
public synchronized int getAttackPerProtocolCount(String protocol, long attack_id, String bssid) {
AttackRecordDao recordDao = this.daoSession.getAttackRecordDao();

QueryBuilder<AttackRecord> qb = recordDao.queryBuilder();
Expand All @@ -215,7 +209,7 @@ public synchronized int getAttackPerProtocolCount(String protocol, int attack_id
*/
synchronized public void updateUntrackedAttacks(){
AttackRecordDao recordDao = this.daoSession.getAttackRecordDao();
SyncDevice ownDevice = this.currentDevice();
SyncDevice ownDevice = currentDevice();
long highestID = ownDevice.getHighest_attack_id();

List<AttackRecord> records = recordDao.queryBuilder()
Expand Down Expand Up @@ -272,10 +266,7 @@ public synchronized boolean bssidSeen(String protocol, String BSSID) {
qb.where(AttackRecordDao.Properties.Protocol.eq(protocol),AttackRecordDao.Properties.Bssid.eq(BSSID));
List<AttackRecord> records = qb.list();

if(!records.isEmpty())
return true;

return false;
return !records.isEmpty();
}

public synchronized int getNumAttacksSeenByBSSID(String BSSID) {
Expand Down Expand Up @@ -316,10 +307,10 @@ private void setMaxIDinDevices( ){
ArrayList<SyncDevice> allDevices = deviceDAO.getSyncDevices();
long highestID = 0;
for (SyncDevice device : allDevices){
Long sync_id = Long.valueOf(device.getDeviceID()).longValue();
Long sync_id = Long.valueOf(device.getDeviceID());

highestID = device.getHighest_attack_id();
if (sync_id != null && highestID < sync_id) highestID = sync_id;
if (sync_id != 0 && highestID < sync_id) highestID = sync_id;

}
for (SyncDevice device : allDevices){
Expand All @@ -336,7 +327,7 @@ private void addUpdatedRecords(List<AttackRecord> attackRecords, SyncDevice ownD
for (AttackRecord element : attackRecords) {
AttackRecord record = this.createAttackRecord(element);
record.setDevice(ownDevice.getDeviceID());
highestID = (highestID > record.getAttack_id())? highestID : record.getAttack_id();
highestID = Math.max(highestID, record.getAttack_id());
this.insert(record);

}
Expand Down Expand Up @@ -558,17 +549,18 @@ public ArrayList<AttackRecord> addNetworkFields(ArrayList<AttackRecord> attackRe
*/
public ArrayList<AttackRecord> selectionQueryFromFilter(LogFilter filter,int offset) {
ArrayList<String> filterProtocols = new ArrayList<>();
if(filter!= null)
filterProtocols = filter.getProtocols();
ArrayList<AttackRecord> attackRecords = this.getAttackRecordsLimit(offset);
ArrayList<AttackRecord> list = new ArrayList<>();

if(filter!= null)
filterProtocols = filter.getProtocols();

if(filterProtocols.isEmpty())
return attackRecords;

for (final String current : filterProtocols) {
list.add(attackRecords.stream().filter(o -> o.getProtocol().equals(current)).findAny().orElse(null));
}
for (final String current : filterProtocols) {
list.addAll(attackRecords.stream().filter(o -> o.getProtocol().equals(current)).collect(Collectors.toList()));
}

list.removeAll(Collections.singleton(null));

Expand All @@ -583,16 +575,17 @@ public ArrayList<AttackRecord> selectionQueryFromFilter(LogFilter filter,int off
*/
public ArrayList<AttackRecord> selectionQueryFromFilter(LogFilter filter) {
ArrayList<String> filterProtocols = new ArrayList<>();
if(filter!= null)
filterProtocols = filter.getProtocols();
ArrayList<AttackRecord> attackRecords = this.getAttackRecords();
ArrayList<AttackRecord> list = new ArrayList<>();

if(filter!= null)
filterProtocols = filter.getProtocols();

if(filterProtocols.isEmpty())
return attackRecords;

for (final String current : filterProtocols) {
list.add(attackRecords.stream().filter(o -> o.getProtocol().equals(current)).findAny().orElse(null));
list.addAll(attackRecords.stream().filter(o -> o.getProtocol().equals(current)).collect(Collectors.toList()));
}

list.removeAll(Collections.singleton(null));
Expand Down
@@ -1,7 +1,5 @@
package de.tudarmstadt.informatik.hostage.persistence.DAO;

import android.os.Build;
import android.support.annotation.RequiresApi;

import org.greenrobot.greendao.AbstractDao;
import org.greenrobot.greendao.Property;
Expand Down
@@ -1,7 +1,6 @@
package de.tudarmstadt.informatik.hostage.persistence.DAO;

import android.os.Build;
import android.support.annotation.RequiresApi;


import org.greenrobot.greendao.query.QueryBuilder;
Expand Down Expand Up @@ -161,8 +160,8 @@ private synchronized NetworkRecord createNetworkRecord(NetworkRecord existingRec
* @param filter
*/
public void deleteFromFilter(LogFilter filter){
ArrayList<NetworkRecord> filterBSSIDs = selectionBSSIDFromFilter(filter,0);
ArrayList<NetworkRecord> filterESSIDs = selectionESSIDFromFilter(filter,0);
ArrayList<NetworkRecord> filterBSSIDs = selectionBSSIDFromFilter(filter);
ArrayList<NetworkRecord> filterESSIDs = selectionESSIDFromFilter(filter);

NetworkRecordDao recordDao = this.daoSession.getNetworkRecordDao();
recordDao.deleteInTx(filterBSSIDs);
Expand All @@ -187,7 +186,7 @@ public ArrayList<NetworkRecord> selectionBSSIDFromFilter(LogFilter filter,int of
return networkRecords;

for (final String current : filterBSSIDs) {
list.add(networkRecords.stream().filter(o -> o.getBssid().equals(current)).findAny().orElse(null));
list.addAll(networkRecords.stream().filter(o -> o.getBssid().equals(current)).collect(Collectors.toList()));
}
list.removeAll(Collections.singleton(null));

Expand All @@ -211,7 +210,7 @@ public ArrayList<NetworkRecord> selectionESSIDFromFilter(LogFilter filter,int of
return networkRecords;

for (final String current : filterESSIDs) {
list.add(networkRecords.stream().filter(o -> o.getSsid().equals(current)).findAny().orElse(null));
list.addAll(networkRecords.stream().filter(o -> o.getSsid().equals(current)).collect(Collectors.toList()));
}

list.removeAll(Collections.singleton(null));
Expand All @@ -237,7 +236,7 @@ public ArrayList<NetworkRecord> selectionBSSIDFromFilter(LogFilter filter) {
return networkRecords;

for (final String current : filterBSSIDs) {
list.add(networkRecords.stream().filter(o -> o.getBssid().equals(current)).findAny().orElse(null));
list.addAll(networkRecords.stream().filter(o -> o.getBssid().equals(current)).collect(Collectors.toList()));
}
list.removeAll(Collections.singleton(null));

Expand All @@ -261,7 +260,7 @@ public ArrayList<NetworkRecord> selectionESSIDFromFilter(LogFilter filter) {
return networkRecords;

for (final String current : filterESSIDs) {
list.add(networkRecords.stream().filter(o -> o.getSsid().equals(current)).findAny().orElse(null));
list.addAll(networkRecords.stream().filter(o -> o.getSsid().equals(current)).collect(Collectors.toList()));
}

list.removeAll(Collections.singleton(null));
Expand Down
Expand Up @@ -4,7 +4,6 @@
import android.content.SharedPreferences;
import android.os.Build;
import android.preference.PreferenceManager;
import android.support.annotation.RequiresApi;


import org.greenrobot.greendao.query.QueryBuilder;
Expand Down Expand Up @@ -33,14 +32,13 @@ public class SyncDeviceDAO extends DAO {

public SyncDeviceDAO(DaoSession daoSession){
this.daoSession= daoSession;
this.generateCurrentDevice();

}

public SyncDeviceDAO(DaoSession daoSession,Context context){
this.daoSession= daoSession;
this.context = context;

//this.generateCurrentDevice();
}


Expand Down Expand Up @@ -206,7 +204,7 @@ public synchronized HashMap<String, Long> getSyncDeviceHashMap(){
*/
public SyncDevice generateCurrentDevice() {
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this.context);
int attack_id = pref.getInt("ATTACK_ID_COUNTER", 0);
long attack_id = pref.getInt("ATTACK_ID_COUNTER", 0);

if (thisDevice == null) {
String deviceUUID = pref.getString("CURRENT_DEVICE_IDENTIFIER", UUID.randomUUID().toString());
Expand All @@ -224,7 +222,7 @@ public SyncDevice generateCurrentDevice() {
return thisDevice;
}

private void deviceExist(SyncDevice device, int attack_id){
private void deviceExist(SyncDevice device, long attack_id){
SyncDevice record = new SyncDevice();
record.setDeviceID(device.getDeviceID());
record.setLast_sync_timestamp(device.getLast_sync_timestamp());
Expand All @@ -234,7 +232,7 @@ private void deviceExist(SyncDevice device, int attack_id){

}

private void createNewDevice(String deviceUUID ,int attack_id, SharedPreferences pref){
private void createNewDevice(String deviceUUID ,long attack_id, SharedPreferences pref){
// CREATE A NEW SYNC DEVICE
thisDevice = new SyncDevice();
// ITS IMPORTANT TO CREATE A COMPLETE NEW DEVICE UUID
Expand Down

0 comments on commit c75c204

Please sign in to comment.