File tree Expand file tree Collapse file tree 3 files changed +31
-6
lines changed
androidTest/java/backtraceio/library
main/java/backtraceio/library Expand file tree Collapse file tree 3 files changed +31
-6
lines changed Original file line number Diff line number Diff line change 11package backtraceio .library ;
22
33import static org .junit .Assert .assertEquals ;
4+ import static org .junit .Assert .assertNull ;
5+ import static org .junit .Assert .assertTrue ;
46
57import android .net .Uri ;
8+
69import androidx .test .ext .junit .runners .AndroidJUnit4 ;
710
811import org .junit .Test ;
@@ -76,4 +79,16 @@ public void createBacktraceCredentialsWithLegacyUriAndGetSubmissionToken() {
7679 BacktraceCredentials backtraceCredentials = new BacktraceCredentials (Uri .parse (legacyUrl ));
7780 assertEquals (fakeToken , backtraceCredentials .getSubmissionToken ());
7881 }
82+
83+ @ Test
84+ public void generateEmptyTokenForInvalidSubmissionUrl () {
85+ BacktraceCredentials backtraceCredentials = new BacktraceCredentials ("https://submit.backtrace.io/" );
86+ assertNull (backtraceCredentials .getSubmissionToken ());
87+ }
88+
89+ @ Test
90+ public void generateEmptyTokenForInvalidLegacyUrl () {
91+ BacktraceCredentials backtraceCredentials = new BacktraceCredentials ("https://universe.sp.backtrace.io/" );
92+ assertNull (backtraceCredentials .getSubmissionToken ());
93+ }
7994}
Original file line number Diff line number Diff line change @@ -118,10 +118,19 @@ public String getSubmissionToken() {
118118 final int tokenLength = 64 ;
119119 final String tokenQueryParam = "token=" ;
120120 String submissionUrl = getSubmissionUrl ().toString ();
121+ final int tokenEndIndex = submissionUrl .lastIndexOf ("/" );
121122 if (submissionUrl .contains ("submit.backtrace.io" )) {
122- return submissionUrl .substring (submissionUrl .lastIndexOf ("/" ) - tokenLength , submissionUrl .lastIndexOf ("/" ));
123+ if (tokenEndIndex - tokenLength < 0 ) {
124+ return null ;
125+ }
126+ return submissionUrl .substring (tokenEndIndex - tokenLength , tokenEndIndex );
127+ }
128+ final int tokenQueryParamStartIndex = submissionUrl .indexOf (tokenQueryParam );
129+ if (tokenQueryParamStartIndex == -1 ) {
130+ return null ;
123131 }
124- final int tokenQueryParamStartIndex = submissionUrl .indexOf (tokenQueryParam ) + tokenQueryParam .length ();
125- return submissionUrl .substring (tokenQueryParamStartIndex , tokenQueryParamStartIndex + tokenLength );
132+
133+ final int tokenParamStartIndex = tokenQueryParamStartIndex + tokenQueryParam .length ();
134+ return submissionUrl .substring (tokenParamStartIndex , tokenParamStartIndex + tokenLength );
126135 }
127136}
Original file line number Diff line number Diff line change @@ -567,15 +567,16 @@ private OnServerResponseEventListener getDatabaseCallback(final BacktraceDatabas
567567 return new OnServerResponseEventListener () {
568568 @ Override
569569 public void onEvent (BacktraceResult backtraceResult ) {
570- if (customCallback != null ) {
571- customCallback .onEvent (backtraceResult );
572- }
573570 if (record != null ) {
574571 record .close ();
575572 }
576573 if (backtraceResult != null && backtraceResult .status == BacktraceResultStatus .Ok ) {
577574 database .delete (record );
578575 }
576+
577+ if (customCallback != null ) {
578+ customCallback .onEvent (backtraceResult );
579+ }
579580 }
580581 };
581582 }
You can’t perform that action at this time.
0 commit comments