diff --git a/basicswap/static/js/coin_icons_2.js b/basicswap/static/js/coin_icons_2.js index 32b59fe..24f23b3 100644 --- a/basicswap/static/js/coin_icons_2.js +++ b/basicswap/static/js/coin_icons_2.js @@ -12,17 +12,21 @@ function setupCustomSelect(select) { } }); - // Set the selected option based on the stored value - const storedValue = localStorage.getItem(select.name); - if (storedValue) { - const selectedOption = select.querySelector(`option[value="${storedValue}"]`); - if (selectedOption) { + if (select.value == '-1') { + // Set the selected option based on the stored value + const storedValue = localStorage.getItem(select.name); + if (storedValue) { select.value = storedValue; - const image = selectedOption.getAttribute('data-image'); - if (image) { - select.style.backgroundImage = `url(${image})`; - selectImage.src = image; - } + } + } + + // Set the selected option image based on the selected value + const selectedOption = select.querySelector(`option[value="${select.value}"]`); + if (selectedOption) { + const image = selectedOption.getAttribute('data-image'); + if (image) { + select.style.backgroundImage = `url(${image})`; + selectImage.src = image; } } diff --git a/tests/basicswap/selenium/test_offer.py b/tests/basicswap/selenium/test_offer.py index c2ca7f5..757c3d7 100644 --- a/tests/basicswap/selenium/test_offer.py +++ b/tests/basicswap/selenium/test_offer.py @@ -16,8 +16,10 @@ python tests/basicswap/selenium/test_offer.py """ +import json import time +from urllib.request import urlopen from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By @@ -41,11 +43,61 @@ def test_html(): select.select_by_visible_text('Monero') driver.find_element(By.NAME, 'amt_from').send_keys('1') - driver.find_element(By.NAME, 'amt_to').send_keys('1') + driver.find_element(By.NAME, 'amt_to').send_keys('2') driver.find_element(By.NAME, 'continue').click() WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.NAME, 'check_offer'))).click() WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.NAME, 'submit_offer'))).click() + time.sleep(1) + + offer_link = driver.find_element(By.XPATH, "//a[contains(text(),'Sent Offer')]") + offer1_id = offer_link.text.split(' ')[2] + + driver.get(node1_url + '/newoffer') + time.sleep(1) + + select = Select(driver.find_element(By.ID, 'coin_from')) + select.select_by_visible_text('Particl') + select = Select(driver.find_element(By.ID, 'coin_to')) + select.select_by_visible_text('Monero') + + driver.find_element(By.NAME, 'amt_from').send_keys('3') + driver.find_element(By.NAME, 'amt_to').send_keys('4') + + driver.find_element(By.NAME, 'continue').click() + WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.NAME, 'check_offer'))).click() + WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.NAME, 'submit_offer'))).click() + time.sleep(1) + + offer_link = driver.find_element(By.XPATH, "//a[contains(text(),'Sent Offer')]") + offer2_id = offer_link.text.split(' ')[2] + + driver.get(node1_url + '/offer/' + offer1_id) + WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.NAME, 'repeat_offer'))).click() + WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.NAME, 'check_offer'))).click() + WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.NAME, 'submit_offer'))).click() + time.sleep(1) + + offer_link = driver.find_element(By.XPATH, "//a[contains(text(),'Sent Offer')]") + offer3_id = offer_link.text.split(' ')[2] + + offer3_json = json.loads(urlopen(node1_url + '/json/offers/' + offer3_id).read())[0] + assert (offer3_json['coin_from'] == 'Bitcoin') + assert (offer3_json['coin_to'] == 'Monero') + + driver.get(node1_url + '/offer/' + offer2_id) + WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.NAME, 'repeat_offer'))).click() + time.sleep(1) # Add time for setupCustomSelect to fire + WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.NAME, 'check_offer'))).click() + WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.NAME, 'submit_offer'))).click() + time.sleep(1) + + offer_link = driver.find_element(By.XPATH, "//a[contains(text(),'Sent Offer')]") + offer4_id = offer_link.text.split(' ')[2] + + offer4_json = json.loads(urlopen(node1_url + '/json/offers/' + offer4_id).read())[0] + assert (offer4_json['coin_from'] == 'Particl') + assert (offer4_json['coin_to'] == 'Monero') driver.close()