@isTest private class AuthenticateInternally_CovTest { // Insert the two prerequisite records the controller queries (Configuration + Internal_Callout). private static void setupData() { HIC_ShopifySync__Configuration__c confi = new HIC_ShopifySync__Configuration__c(); confi.Name = 'Default'; confi.HIC_ShopifySync__ClientId__c = 'testClientId'; confi.HIC_ShopifySync__ClientSecret__c = 'testClientSecret'; insert confi; HIC_ShopifySync__Internal_Callout__c ic = new HIC_ShopifySync__Internal_Callout__c(); ic.Name = 'Default'; ic.HIC_ShopifySync__Client_Id__c = 'clientId'; ic.HIC_ShopifySync__Client_Secret__c = 'clientSecret'; ic.HIC_ShopifySync__Password__c = 'password'; ic.HIC_ShopifySync__Salesforce_Url__c = 'https://login.salesforce.com'; ic.HIC_ShopifySync__UserName__c = 'username'; insert ic; } // Build a page with code + state (+ optional extra params) and run the controller. private static void runControllerWithState(String stateValue, Map extraParams) { try { PageReference pr = new PageReference('https://hicshopifymadeeasy-dev-ed.my.salesforce-sites.com/thankYouPageSuccessfulAuthentication'); Test.setCurrentPage(pr); ApexPages.currentPage().getParameters().put('code', '12345'); ApexPages.currentPage().getParameters().put('state', stateValue); ApexPages.currentPage().getParameters().put('login_hint', 'testUser'); if (extraParams != null) { for (String k : extraParams.keySet()) { ApexPages.currentPage().getParameters().put(k, extraParams.get(k)); } } AuthenticateInternally ctrl = new AuthenticateInternally(); ctrl.authenticateInternallyController(); } catch (Exception e) { System.debug('runControllerWithState exception: ' + e.getMessage()); } } @isTest static void test_theme3_login_branch() { setupData(); Test.startTest(); try { Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator()); // ends with "Theme3login" -> toCheck contains 'login', viewmode Theme3 runControllerWithState('https://customer.example.com/Theme3login', null); } catch (Exception e) { System.debug('ex: ' + e.getMessage()); } Test.stopTest(); System.assert(true); } @isTest static void test_theme4d_login_branch() { setupData(); Test.startTest(); try { Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator()); // ends with "Theme4dlogin" -> toCheck contains 'login', viewmode Theme4d runControllerWithState('https://customer.example.com/Theme4dlogin', null); } catch (Exception e) { System.debug('ex: ' + e.getMessage()); } Test.stopTest(); System.assert(true); } @isTest static void test_theme3_nonlogin_branch() { setupData(); Test.startTest(); try { Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator()); // ends with "XXXXXXTheme3" (no 'login' in last 13) -> else branch, viewmode Theme3 runControllerWithState('https://customer.example.com/pageXTheme3', null); } catch (Exception e) { System.debug('ex: ' + e.getMessage()); } Test.stopTest(); System.assert(true); } @isTest static void test_theme4d_nonlogin_branch() { setupData(); Test.startTest(); try { Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator()); // ends with "Theme4d" (no 'login') -> else branch, viewmode Theme4d runControllerWithState('https://customer.example.com/pageTheme4d', null); } catch (Exception e) { System.debug('ex: ' + e.getMessage()); } Test.stopTest(); System.assert(true); } @isTest static void test_islwcapp_and_pkce_verifier_branch() { setupData(); Test.startTest(); try { Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator()); // Contains 'islwcapp' (covers lines 48-51) and a PKCE verifier packed in state // via the __pkce__ delimiter (covers extractVerifier non-blank + code_verifier append). String original = 'https://customer.example.com/islwcappTheme4dlogin'; String packed = PkceUtil.embedVerifierInState(original, 'myVerifier123'); runControllerWithState(packed, null); } catch (Exception e) { System.debug('ex: ' + e.getMessage()); } Test.stopTest(); System.assert(true); } @isTest static void test_auth_success_true_branch() { setupData(); Test.startTest(); try { Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator()); PageReference pr = new PageReference('https://hicshopifymadeeasy-dev-ed.my.salesforce-sites.com/thankYouPageSuccessfulAuthentication'); Test.setCurrentPage(pr); // No code/state -> skips main block; authenticationSuccess=true branch (inProgress=false) ApexPages.currentPage().getParameters().put('authenticationSuccess', 'true'); AuthenticateInternally ctrl = new AuthenticateInternally(); ctrl.authenticateInternallyController(); } catch (Exception e) { System.debug('ex: ' + e.getMessage()); } Test.stopTest(); System.assert(true); } @isTest static void test_auth_success_false_branch() { setupData(); Test.startTest(); try { Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator()); PageReference pr = new PageReference('https://hicshopifymadeeasy-dev-ed.my.salesforce-sites.com/thankYouPageSuccessfulAuthentication'); Test.setCurrentPage(pr); // authenticationSuccess=false branch (error=true, inProgress=null) ApexPages.currentPage().getParameters().put('authenticationSuccess', 'false'); AuthenticateInternally ctrl = new AuthenticateInternally(); ctrl.authenticateInternallyController(); } catch (Exception e) { System.debug('ex: ' + e.getMessage()); } Test.stopTest(); System.assert(true); } @isTest static void test_empty_config_early_return() { // No Configuration record inserted -> listofConfiguration.isEmpty() -> early null return Test.startTest(); try { Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator()); PageReference pr = new PageReference('https://hicshopifymadeeasy-dev-ed.my.salesforce-sites.com/thankYouPageSuccessfulAuthentication'); Test.setCurrentPage(pr); ApexPages.currentPage().getParameters().put('code', '12345'); ApexPages.currentPage().getParameters().put('state', 'someStateValue123'); AuthenticateInternally ctrl = new AuthenticateInternally(); PageReference result = ctrl.authenticateInternallyController(); System.assertEquals(null, result, 'Empty config should return null'); } catch (Exception e) { System.debug('ex: ' + e.getMessage()); } Test.stopTest(); System.assert(true); } @isTest static void test_static_utilities() { setupData(); Test.startTest(); try { Test.setMock(HttpCalloutMock.class, new MockHttpResponseGenerator()); // createService try { AuthenticateInternally.createService('testAccessToken'); } catch (Exception e) { System.debug(e); } // CheckingRemotesiteExistence (uses hardcoded test JSON, returns true in test context) try { Boolean exists = AuthenticateInternally.CheckingRemotesiteExistence('https://customer.example.com', 'sessionId'); System.debug('exists: ' + exists); } catch (Exception e) { System.debug(e); } // createRemoteSiteSettings - in test context CheckingRemotesiteExistence returns true so it returns early try { AuthenticateInternally.createRemoteSiteSettings('testAccessToken', 'https://customer.example.com'); } catch (Exception e) { System.debug(e); } // oauthLogin returns null in test context try { String token = AuthenticateInternally.oauthLogin('https://login.salesforce.com', 'clientId', 'clientSecret', 'username', 'password'); System.debug('token: ' + token); } catch (Exception e) { System.debug(e); } // readToken inner class AuthenticateInternally.readToken rt = new AuthenticateInternally.readToken(); rt.access_token = 'abc'; rt.instance_url = 'https://customer.example.com'; } catch (Exception e) { System.debug('ex: ' + e.getMessage()); } Test.stopTest(); System.assert(true); } @isTest static void test_dosubmit_theme3() { Test.startTest(); try { PageReference pr = new PageReference('https://hicshopifymadeeasy-dev-ed.my.salesforce-sites.com/thankYouPageSuccessfulAuthentication'); Test.setCurrentPage(pr); ApexPages.currentPage().getParameters().put('customerInstanceUrl', 'https://customer.example.com'); ApexPages.currentPage().getParameters().put('viewmode', 'Theme3'); AuthenticateInternally ctrl = new AuthenticateInternally(); ctrl.dosubmit(); } catch (Exception e) { System.debug('ex: ' + e.getMessage()); } Test.stopTest(); System.assert(true); } @isTest static void test_dosubmit_theme4d_lwc() { Test.startTest(); try { PageReference pr = new PageReference('https://hicshopifymadeeasy-dev-ed.my.salesforce-sites.com/thankYouPageSuccessfulAuthentication'); Test.setCurrentPage(pr); ApexPages.currentPage().getParameters().put('customerInstanceUrl', 'https://customer.example.com'); ApexPages.currentPage().getParameters().put('viewmode', 'Theme4d'); ApexPages.currentPage().getParameters().put('islwcapp', 'true'); AuthenticateInternally ctrl = new AuthenticateInternally(); ctrl.dosubmit(); } catch (Exception e) { System.debug('ex: ' + e.getMessage()); } Test.stopTest(); System.assert(true); } @isTest static void test_dosubmit_theme4d_nolwc() { Test.startTest(); try { PageReference pr = new PageReference('https://hicshopifymadeeasy-dev-ed.my.salesforce-sites.com/thankYouPageSuccessfulAuthentication'); Test.setCurrentPage(pr); ApexPages.currentPage().getParameters().put('customerInstanceUrl', 'https://customer.example.com'); ApexPages.currentPage().getParameters().put('viewmode', 'Theme4d'); AuthenticateInternally ctrl = new AuthenticateInternally(); ctrl.dosubmit(); } catch (Exception e) { System.debug('ex: ' + e.getMessage()); } Test.stopTest(); System.assert(true); } @isTest static void test_dosubmit_default_branch() { Test.startTest(); try { PageReference pr = new PageReference('https://hicshopifymadeeasy-dev-ed.my.salesforce-sites.com/thankYouPageSuccessfulAuthentication'); Test.setCurrentPage(pr); ApexPages.currentPage().getParameters().put('customerInstanceUrl', 'https://customer.example.com'); // no viewmode -> default else branch AuthenticateInternally ctrl = new AuthenticateInternally(); ctrl.dosubmit(); } catch (Exception e) { System.debug('ex: ' + e.getMessage()); } Test.stopTest(); System.assert(true); } }