public void testSessions() { Context context = activity.getApplicationContext(); // starting from a clean slate mockLogger.test( "Was AdjustActivityState deleted? " + ActivityHandler.deleteActivityState(context)); // adjust the intervals for testing AdjustFactory.setSessionInterval(2000); AdjustFactory.setSubsessionInterval(100); ActivityHandler activityHandler = new ActivityHandler(activity); // start the first session activityHandler.trackSubsessionStart(); // wait enough to be a new subsession, but not a new session SystemClock.sleep(1500); activityHandler.trackSubsessionStart(); // wait enough to be a new session SystemClock.sleep(4000); activityHandler.trackSubsessionStart(); // test the subsession end activityHandler.trackSubsessionEnd(); SystemClock.sleep(1000); // check that a new subsession was created assertTrue( mockLogger.toString(), mockLogger.containsMessage(LogLevel.INFO, "Started subsession 2 of session 1")); // check that it's now on the 2nd session assertTrue(mockLogger.toString(), mockLogger.containsMessage(LogLevel.DEBUG, "Session 2")); // check that 2 packages were added to the package handler assertEquals(2, mockPackageHandler.queue.size()); // get the second session package and its parameters ActivityPackage activityPackage = mockPackageHandler.queue.get(1); Map<String, String> parameters = activityPackage.getParameters(); // the session and subsession count should be 2 assertEquals( activityPackage.getExtendedString(), 2, Integer.parseInt(parameters.get("session_count"))); assertEquals( activityPackage.getExtendedString(), 2, Integer.parseInt(parameters.get("subsession_count"))); // TODO test updated timeSpent and sessionLenght mockLogger.test("timeSpent " + parameters.get("time_spent")); mockLogger.test("sessionLength " + parameters.get("session_length")); // check that the package handler was paused assertTrue( mockLogger.toString(), mockLogger.containsTestMessage("PackageHandler pauseSending")); }
@Override protected void tearDown() throws Exception { super.tearDown(); AdjustFactory.setPackageHandler(null); AdjustFactory.setLogger(null); AdjustFactory.setTimerInterval(-1); AdjustFactory.setSessionInterval(-1); AdjustFactory.setSubsessionInterval(-1); }
@Override protected void setUp() throws Exception { super.setUp(); mockLogger = new MockLogger(); mockPackageHandler = new MockPackageHandler(mockLogger); AdjustFactory.setLogger(mockLogger); AdjustFactory.setPackageHandler(mockPackageHandler); activity = getActivity(); }
public void testDisable() { Context context = activity.getApplicationContext(); // starting from a clean slate mockLogger.test( "Was AdjustActivityState deleted? " + ActivityHandler.deleteActivityState(context)); // set the timer for a shorter time for testing AdjustFactory.setTimerInterval(700); ActivityHandler activityHandler = new ActivityHandler(activity, "qwerty123456", "sandbox", "verbose", false); // verify the default value, when not started assertTrue(activityHandler.isEnabled()); activityHandler.setEnabled(false); // verify the default value, when not started assertFalse(activityHandler.isEnabled()); // start the first session activityHandler.trackSubsessionStart(); activityHandler.trackEvent("123456", null); activityHandler.trackRevenue(0.1, null, null); activityHandler.trackSubsessionEnd(); activityHandler.trackSubsessionStart(); SystemClock.sleep(1000); // verify the changed value after the activity handler is started assertFalse(activityHandler.isEnabled()); // making sure the first session was sent assertTrue(mockLogger.toString(), mockLogger.containsMessage(LogLevel.INFO, "First session")); // delete the first session package from the log assertTrue( mockLogger.toString(), mockLogger.containsTestMessage("PackageHandler sendFirstPackage")); // making sure the timer fired did not call the package handler assertFalse( mockLogger.toString(), mockLogger.containsTestMessage("PackageHandler sendFirstPackage")); // test if the event was not triggered assertFalse(mockLogger.toString(), mockLogger.containsMessage(LogLevel.DEBUG, "Event 1")); // test if the revenue was not triggered assertFalse( mockLogger.toString(), mockLogger.containsMessage(LogLevel.DEBUG, "Event 1 (revenue)")); // verify that the application was paused assertTrue( mockLogger.toString(), mockLogger.containsTestMessage("PackageHandler pauseSending")); // verify that it was not resumed assertFalse( mockLogger.toString(), mockLogger.containsTestMessage("PackageHandler resumeSending")); // enable again activityHandler.setEnabled(true); SystemClock.sleep(1000); // verify that the timer was able to resume sending assertTrue( mockLogger.toString(), mockLogger.containsTestMessage("PackageHandler resumeSending")); activityHandler.trackEvent("123456", null); activityHandler.trackRevenue(0.1, null, null); activityHandler.trackSubsessionEnd(); activityHandler.trackSubsessionStart(); SystemClock.sleep(1000); // verify the changed value, when the activity state is started assertTrue(activityHandler.isEnabled()); // test that the event was triggered assertTrue(mockLogger.toString(), mockLogger.containsMessage(LogLevel.DEBUG, "Event 1")); // test that the revenue was triggered assertTrue( mockLogger.toString(), mockLogger.containsMessage(LogLevel.DEBUG, "Event 2 (revenue)")); // verify that the application was paused assertTrue( mockLogger.toString(), mockLogger.containsTestMessage("PackageHandler pauseSending")); // verify that it was also resumed assertTrue( mockLogger.toString(), mockLogger.containsTestMessage("PackageHandler resumeSending")); // */ }