import unittest import allure import pytest from ui_automation_framework.core import TestStatus from ui_automation_framework.utils import AppConfig, CoreConfig from app.src.pages.login_page import LoginPage from app.src.pages.track_page import TrackPage @pytest.mark.usefixtures("set_up", "one_time_set_up") class DeepLinkingTrackPageTest(unittest.TestCase): global_market_id = AppConfig.get("market")["global"]["url"] us_market_id = AppConfig.get("market")["us"]["url"] brasil_market_id = AppConfig.get("market")["brazil"]["url"] home_fr_market_id = AppConfig.get("market")["france"]["url"] global_market_name = AppConfig.get("market")["global"]["name"] us_market_name = AppConfig.get("market")["us"]["name"] brazil_market_name = AppConfig.get("market")["brazil"]["name"] fr_market_name_ui = AppConfig.get("market")["france"]["header"] us_market_name_ui = AppConfig.get("market")["us"]["header"] br_market_name_ui = AppConfig.get("market")["brazil"]["header"] track_id2 = AppConfig.get("track2")["id"] @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.trackPage = TrackPage(self.driver) self.ts = TestStatus(self.driver) @allure.story("AP-1871") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: market parameter setting up STEP 1 - Spotify") @allure.description("TC verifies that a user has an ability to verify active market id in local storage - Spotify") def test_verify_active_market_id_spotify(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_spotify_track_page(AppConfig.get("spotify_trackId")) self.trackPage.select_market(self.global_market_name) home_market_id = self.trackPage.get_local_storage_active_market_id() self.trackPage.is_graph_period_displayed() self.ts.markFinal(home_market_id == self.global_market_id, "local storage active market id is " + str(self.global_market_id)) is_displayed_market = self.trackPage.is_market_in_header_correct(self.global_market_name) self.ts.markFinal(is_displayed_market == True, "Selected market is displayed: " + self.global_market_name) @allure.story("AP-1871") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: market parameter setting up STEPS 2-4 - Spotify") @allure.description("TC verifies that a user has an ability to change current market id in header - Spotify") def test_verify_change_market_id_in_header_spotify(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_spotify_track_page(AppConfig.get("spotify_trackId")) self.trackPage.select_market(self.global_market_name) self.trackPage.select_market(self.us_market_name) active_market_id = self.trackPage.get_local_storage_active_market_id() self.trackPage.is_graph_period_displayed() self.ts.markFinal(active_market_id == self.us_market_id, "local storage active market id is " + str(self.us_market_id)) market_url = self.trackPage.get_market_from_url() self.ts.markFinal(market_url == self.us_market_id, "url market is " + str(self.us_market_id)) is_displayed_market = self.trackPage.is_market_in_header_correct(self.us_market_name_ui) self.ts.markFinal(is_displayed_market == True, "Selected market is displayed: " + self.us_market_name_ui) @allure.story("AP-1871") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: market parameter setting up STEPS 5-6 - Spotify") @allure.description("TC verifies that a user has an ability to change market id using url - Spotify") def test_verify_change_market_id_in_url_spotify(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_spotify_track_page(AppConfig.get("spotify_trackId")) self.trackPage.select_market(self.global_market_name) self.trackPage.open_spotify_track_page_with_market_id(AppConfig.get("spotify_trackId"), self.brasil_market_id) market_url = self.trackPage.get_market_from_url() self.trackPage.is_graph_period_displayed() self.ts.markFinal(market_url == self.brasil_market_id, "url market is " + str(self.brasil_market_id)) self.trackPage.wait_for_local_storage_active_market_id(self.brasil_market_id) new_market_id = self.trackPage.get_market_from_url() self.ts.markFinal( new_market_id == self.brasil_market_id, "local storage active market id should be: " + str(self.brasil_market_id) + ", is: " + str(new_market_id), ) is_displayed_market = self.trackPage.is_market_in_header_correct(self.br_market_name_ui) self.ts.markFinal(is_displayed_market == True, "Selected market is displayed: " + self.br_market_name_ui) @allure.story("AP-1871") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: market parameter setting up STEPS 7-8 - Spotify") @allure.description("TC verifies that market id after it removed from url and refresh - Spotify") def test_verify_market_id_after_remove_in_url_spotify(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_spotify_track_page(AppConfig.get("spotify_trackId")) self.trackPage.select_market(self.us_market_name) self.trackPage.open_spotify_track_page(AppConfig.get("spotify_trackId")) new_market_id = self.trackPage.get_local_storage_active_market_id() self.trackPage.is_graph_period_displayed() self.ts.markFinal( new_market_id == self.us_market_id, "local storage active market id should be: " + str(self.us_market_id) + ", is: " + str(new_market_id), ) market_url = self.trackPage.get_market_from_url() self.ts.markFinal(market_url == self.us_market_id, "url market is " + str(self.us_market_id)) is_displayed_market = self.trackPage.is_market_in_header_correct(self.us_market_name_ui) self.ts.markFinal(is_displayed_market == True, "Selected market is displayed: " + self.us_market_name_ui) @allure.story("AP-1871") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: market parameter setting up STEP 9 - Spotify") @allure.description("TC verifies market id after it removed from url and storage - Spotify") def test_verify_market_id_after_remove_in_url_and_storage_spotify(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_spotify_track_page(AppConfig.get("spotify_trackId")) self.trackPage.select_market(self.us_market_name) self.trackPage.set_local_storage_active_market_id(0) self.trackPage.open_spotify_track_page(AppConfig.get("spotify_trackId")) active_market_id = self.trackPage.wait_for_local_storage_active_market_id(self.home_fr_market_id) self.trackPage.is_graph_period_displayed() self.ts.markFinal(active_market_id == self.home_fr_market_id, "local storage active market id is " + str(active_market_id)) home_id = self.trackPage.get_local_storage_home_market_id() active_market_id = self.trackPage.get_market_from_url() self.ts.markFinal(home_id == active_market_id == self.home_fr_market_id, "home id is displayed in url" + str(home_id)) is_displayed_market = self.trackPage.is_market_in_header_correct(self.fr_market_name_ui) self.ts.markFinal(is_displayed_market == True, "Selected market is displayed: " + self.fr_market_name_ui) @allure.story("AP-1871") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: market parameter setting up STEPS 10-16 - Spotify") @allure.description("TC verifies market id is set incorrectly to url - Spotify") def test_verify_market_id_after_after_set_incorrect_in_url_spotify(self): track_url = CoreConfig.ENV_BASE_URL + "/spotify/track/" + AppConfig.get("spotify_trackId") self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_spotify_track_page(AppConfig.get("spotify_trackId")) self.trackPage.select_market(self.us_market_name) self.trackPage.open_url(track_url + "?#market=777") home_id = self.trackPage.get_local_storage_active_market_id() active_market_id = self.trackPage.get_market_from_url() self.ts.markFinal(self.us_market_id == home_id == active_market_id, "market id is: " + str(self.us_market_id)) self.trackPage.open_url(track_url + "?market777&maarket=4") home_id = self.trackPage.get_local_storage_active_market_id() active_market_id = self.trackPage.get_market_from_url() self.ts.markFinal(self.us_market_id == home_id == active_market_id, "market id is: " + str(self.us_market_id)) self.trackPage.open_url(track_url + "?marketi=798&maarket=444") home_id = self.trackPage.get_local_storage_active_market_id() active_market_id = self.trackPage.get_market_from_url() self.trackPage.is_graph_period_displayed() self.ts.markFinal(self.us_market_id == home_id == active_market_id, "market id is: " + str(self.us_market_id)) is_displayed_market = self.trackPage.is_market_in_header_correct(self.us_market_name_ui) self.ts.markFinal(is_displayed_market == True, "Selected market is displayed: " + self.us_market_name_ui) @allure.story("AP-1871") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: market parameter setting up STEPS 17-18 - Spotify") @allure.description("TC verifies that a user can switch to market id from browser history - Spotify") def test_verify_change_market_id_using_browser_history_spotify(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_spotify_track_page(self.track_id2) self.trackPage.select_market(self.us_market_name) self.trackPage.is_graph_period_displayed() self.trackPage.select_market(self.brazil_market_name) self.trackPage.is_graph_period_displayed() history_market = self.trackPage.go_back_and_verify_local_storage_and_url_market_id(self.us_market_id) self.ts.markFinal(history_market, "is market from browser history correct: " + str(history_market)) is_displayed_market = self.trackPage.is_market_in_header_correct(self.us_market_name_ui) self.ts.markFinal(is_displayed_market == True, "Selected market is displayed: " + self.us_market_name_ui) @allure.story("AP-1871") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: market parameter setting up STEP 1 - Apple") @allure.description("TC verifies that a user has an ability to verify active market id in local storage - Apple") def test_verify_active_market_id_apple(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_apple_track_page(AppConfig.get("apple_trackId")) self.trackPage.select_market(self.global_market_name) home_market_id = self.trackPage.get_local_storage_active_market_id() self.trackPage.is_graph_period_displayed() self.ts.markFinal(home_market_id == self.global_market_id, "local storage active market id is " + str(self.global_market_id)) is_displayed_market = self.trackPage.is_market_in_header_correct(self.global_market_name) self.ts.markFinal(is_displayed_market == True, "Selected market is displayed: " + self.global_market_name) @allure.story("AP-1871") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: market parameter setting up STEPS 2-4 - Apple") @allure.description("TC verifies that a user has an ability to change current market id in header - Apple") def test_verify_change_market_id_in_header_apple(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_apple_track_page(AppConfig.get("apple_trackId")) self.trackPage.select_market(self.global_market_name) self.trackPage.select_market(self.us_market_name) active_market_id = self.trackPage.get_local_storage_active_market_id() self.ts.markFinal(active_market_id == self.us_market_id, "local storage active market id is " + str(self.us_market_id)) market_url = self.trackPage.get_market_from_url() self.trackPage.is_graph_period_displayed() self.ts.markFinal(market_url == self.us_market_id, "url market is " + str(self.us_market_id)) is_displayed_market = self.trackPage.is_market_in_header_correct(self.us_market_name_ui) self.ts.markFinal(is_displayed_market == True, "Selected market is displayed: " + self.us_market_name_ui) @allure.story("AP-1871") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: market parameter setting up STEPS 5-6 - Apple") @allure.description("TC verifies that a user has an ability to change market id using url - Apple") def test_verify_change_market_id_in_url_apple(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_apple_track_page(AppConfig.get("apple_trackId")) self.trackPage.select_market(self.global_market_name) self.trackPage.open_apple_track_page_with_market_id(AppConfig.get("apple_trackId"), self.brasil_market_id) market_url = self.trackPage.get_market_from_url() self.trackPage.is_graph_period_displayed() self.ts.markFinal(market_url == self.brasil_market_id, "url market is " + str(self.brasil_market_id)) self.trackPage.wait_for_local_storage_active_market_id(self.brasil_market_id) new_market_id = self.trackPage.get_market_from_url() self.ts.markFinal( new_market_id == self.brasil_market_id, "local storage active market id should be: " + str(self.brasil_market_id) + ", is: " + str(new_market_id), ) is_displayed_market = self.trackPage.is_market_in_header_correct(self.br_market_name_ui) self.ts.markFinal(is_displayed_market == True, "Selected market is displayed: " + self.br_market_name_ui) @allure.story("AP-1871") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: market parameter setting up STEPS 7-8 - Apple") @allure.description("TC verifies that market id after it removed from url and refresh - Apple") def test_verify_market_id_after_remove_in_url_apple(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_apple_track_page(AppConfig.get("apple_trackId")) self.trackPage.select_market(self.us_market_name) self.trackPage.open_apple_track_page(AppConfig.get("apple_trackId")) new_market_id = self.trackPage.get_local_storage_active_market_id() self.ts.markFinal( new_market_id == self.us_market_id, "local storage active market id should be: " + str(self.us_market_id) + ", is: " + str(new_market_id), ) market_url = self.trackPage.get_market_from_url() self.trackPage.is_graph_period_displayed() self.ts.markFinal(market_url == self.us_market_id, "url market is " + str(self.us_market_id)) is_displayed_market = self.trackPage.is_market_in_header_correct(self.us_market_name_ui) self.ts.markFinal(is_displayed_market == True, "Selected market is displayed: " + self.us_market_name_ui) @allure.story("AP-1871") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: market parameter setting up STEP 9 - Apple") @allure.description("TC verifies market id after it removed from url and storage - Apple") def test_verify_market_id_after_remove_in_url_and_storage_apple(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_apple_track_page(AppConfig.get("apple_trackId")) self.trackPage.select_market(self.us_market_name) self.trackPage.set_local_storage_active_market_id(0) self.trackPage.open_apple_track_page(AppConfig.get("apple_trackId")) active_market_id = self.trackPage.wait_for_local_storage_active_market_id(self.home_fr_market_id) self.trackPage.is_graph_period_displayed() self.ts.markFinal(active_market_id == self.home_fr_market_id, "local storage active market id is " + str(active_market_id)) home_id = self.trackPage.get_local_storage_home_market_id() active_market_id = self.trackPage.get_market_from_url() self.ts.markFinal(home_id == active_market_id == self.home_fr_market_id, "home id is displayed in url" + str(home_id)) is_displayed_market = self.trackPage.is_market_in_header_correct(self.fr_market_name_ui) self.ts.markFinal(is_displayed_market == True, "Selected market is displayed: " + self.fr_market_name_ui) @allure.story("AP-1871") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: market parameter setting up STEPS 10-16 - Apple") @allure.description("TC verifies market id is set incorrectly to url - Apple") def test_verify_market_id_after_after_set_incorrect_in_url_apple(self): track_url = CoreConfig.ENV_BASE_URL + "/apple/track/" + AppConfig.get("apple_trackId") self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_apple_track_page(AppConfig.get("apple_trackId")) self.trackPage.select_market(self.us_market_name) self.trackPage.open_url(track_url + "?#market=777") home_id = self.trackPage.get_local_storage_active_market_id() active_market_id = self.trackPage.get_market_from_url() self.trackPage.is_graph_period_displayed() self.ts.markFinal(self.us_market_id == home_id == active_market_id, "market id is: " + str(self.us_market_id)) self.trackPage.open_url(track_url + "?market777&maarket=4") home_id = self.trackPage.get_local_storage_active_market_id() active_market_id = self.trackPage.get_market_from_url() self.ts.markFinal(self.us_market_id == home_id == active_market_id, "market id is: " + str(self.us_market_id)) self.trackPage.open_url(track_url + "?marketi=7I98&maarket=444") home_id = self.trackPage.get_local_storage_active_market_id() active_market_id = self.trackPage.get_market_from_url() self.ts.markFinal(self.us_market_id == home_id == active_market_id, "market id is: " + str(self.us_market_id)) is_displayed_market = self.trackPage.is_market_in_header_correct(self.us_market_name_ui) self.ts.markFinal(is_displayed_market == True, "Selected market is displayed: " + self.us_market_name_ui) @allure.story("AP-1871") @allure.severity(allure.severity_level.NORMAL) @allure.title("Deep linking: market parameter setting up STEPS 17-18 - Apple") @allure.description("TC verifies that a user can switch to market id from browser history - Apple") def test_verify_change_market_id_using_browser_history_apple(self): self.loginPage.login(CoreConfig.USER_EMAIL, CoreConfig.USER_PASSWORD) self.loginPage.is_logged_in() self.trackPage.open_apple_track_page(AppConfig.get("apple_trackId")) self.trackPage.select_market(self.us_market_name) self.trackPage.is_graph_period_displayed() self.trackPage.select_market(self.brazil_market_name) self.trackPage.is_graph_period_displayed() history_market = self.trackPage.go_back_and_verify_local_storage_and_url_market_id(self.us_market_id) self.ts.markFinal(history_market, "is market from browser history correct: " + str(history_market)) is_displayed_market = self.trackPage.is_market_in_header_correct(self.us_market_name_ui) self.ts.markFinal(is_displayed_market == True, "Selected market is displayed: " + self.us_market_name_ui)