2021-01-15 17:02:39 +01:00
|
|
|
import { Selector } from "testcafe";
|
|
|
|
import testcafeconfig from "./testcafeconfig";
|
2019-05-21 17:00:46 +02:00
|
|
|
import Page from "./page-model";
|
2021-01-15 17:02:39 +01:00
|
|
|
import { ClientFunction } from "testcafe";
|
2020-05-28 10:01:11 +02:00
|
|
|
|
2020-05-31 19:31:48 +02:00
|
|
|
const scroll = ClientFunction((x, y) => window.scrollTo(x, y));
|
|
|
|
const getcurrentPosition = ClientFunction(() => window.pageYOffset);
|
|
|
|
|
2021-01-15 17:02:39 +01:00
|
|
|
fixture`Test photos`.page`${testcafeconfig.url}`;
|
2019-05-21 17:00:46 +02:00
|
|
|
|
|
|
|
const page = new Page();
|
|
|
|
|
2021-01-25 19:12:25 +01:00
|
|
|
test.meta("testID", "photos-001")("Scroll to top", async (t) => {
|
2021-01-18 20:43:34 +01:00
|
|
|
await page.openNav();
|
|
|
|
await t.click(Selector(".nav-browse"));
|
2021-01-15 17:02:39 +01:00
|
|
|
await page.setFilter("view", "Cards");
|
|
|
|
await t
|
|
|
|
.expect(Selector("button.is-photo-scroll-top").exists)
|
|
|
|
.notOk()
|
|
|
|
.expect(getcurrentPosition())
|
|
|
|
.eql(0)
|
|
|
|
.expect(Selector('div[class="v-image__image v-image__image--cover"]').nth(0).visible)
|
|
|
|
.ok();
|
|
|
|
await scroll(0, 1400);
|
|
|
|
await scroll(0, 1000);
|
|
|
|
await t.click(Selector("button.p-scroll-top")).expect(getcurrentPosition()).eql(0);
|
2020-05-31 19:31:48 +02:00
|
|
|
});
|
2019-06-20 16:17:43 +02:00
|
|
|
|
2021-01-15 17:02:39 +01:00
|
|
|
test.meta("testID", "photos-002")(
|
|
|
|
"Download single photo/video using clipboard and fullscreen mode",
|
|
|
|
async (t) => {
|
|
|
|
await page.search("photo:true");
|
|
|
|
const FirstPhoto = await Selector("div.is-photo").nth(0).getAttribute("data-uid");
|
|
|
|
const SecondPhoto = await Selector("div.is-photo").nth(1).getAttribute("data-uid");
|
|
|
|
await t.click(Selector("div").withAttribute("data-uid", SecondPhoto));
|
|
|
|
await t
|
|
|
|
.expect(Selector("#p-photo-viewer").visible)
|
|
|
|
.ok()
|
|
|
|
.hover(Selector(".action-download"))
|
|
|
|
.expect(Selector(".action-download").visible)
|
|
|
|
.ok()
|
|
|
|
.click(Selector(".action-close"));
|
2021-01-13 16:56:45 +01:00
|
|
|
await page.selectPhotoFromUID(FirstPhoto);
|
2021-01-18 20:43:34 +01:00
|
|
|
await page.openNav();
|
2021-01-15 17:02:39 +01:00
|
|
|
await t.click(Selector(".nav-video"));
|
|
|
|
const FirstVideo = await Selector("div.is-photo").nth(0).getAttribute("data-uid");
|
2021-01-13 16:56:45 +01:00
|
|
|
await page.selectPhotoFromUID(FirstVideo);
|
2021-01-15 17:02:39 +01:00
|
|
|
const clipboardCount = await Selector("span.count-clipboard", { timeout: 5000 });
|
|
|
|
await t
|
|
|
|
.expect(clipboardCount.textContent)
|
|
|
|
.eql("2")
|
|
|
|
.click(Selector("button.action-menu"))
|
|
|
|
.expect(Selector("button.action-download").visible)
|
|
|
|
.ok();
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
test.meta("testID", "photos-003")(
|
|
|
|
"Approve photo using approve and by adding location",
|
|
|
|
async (t) => {
|
2020-05-28 10:01:11 +02:00
|
|
|
await page.openNav();
|
2021-01-15 17:02:39 +01:00
|
|
|
await t.click(Selector("div.nav-browse + div")).click(Selector(".nav-review"));
|
|
|
|
await page.search("type:image");
|
|
|
|
const FirstPhoto = await Selector("div.is-photo").nth(0).getAttribute("data-uid");
|
|
|
|
const SecondPhoto = await Selector("div.is-photo").nth(1).getAttribute("data-uid");
|
|
|
|
const ThirdPhoto = await Selector("div.is-photo").nth(2).getAttribute("data-uid");
|
2021-01-18 20:43:34 +01:00
|
|
|
await page.openNav();
|
2019-06-20 16:17:43 +02:00
|
|
|
|
2021-01-15 17:02:39 +01:00
|
|
|
await t.click(Selector(".nav-browse"));
|
2020-05-28 10:01:11 +02:00
|
|
|
await t
|
2021-01-15 17:02:39 +01:00
|
|
|
.expect(Selector("div").withAttribute("data-uid", FirstPhoto).exists, { timeout: 5000 })
|
|
|
|
.notOk()
|
|
|
|
.expect(Selector("div").withAttribute("data-uid", SecondPhoto).exists, { timeout: 5000 })
|
|
|
|
.notOk();
|
2021-01-18 20:43:34 +01:00
|
|
|
await page.openNav();
|
2021-01-15 17:02:39 +01:00
|
|
|
await t.click(Selector(".nav-review"));
|
2020-05-28 16:36:32 +02:00
|
|
|
|
2021-01-13 16:56:45 +01:00
|
|
|
await page.selectPhotoFromUID(FirstPhoto);
|
2020-06-01 17:04:47 +02:00
|
|
|
await page.editSelected();
|
2021-01-15 17:02:39 +01:00
|
|
|
await t.click(Selector("button.action-close"));
|
2021-01-19 18:20:10 +01:00
|
|
|
if (t.browser.platform === "mobile") {
|
|
|
|
await t.eval(() => location.reload());
|
|
|
|
} else {
|
|
|
|
await t.click(Selector("button.action-reload"));
|
|
|
|
}
|
2019-05-21 17:00:46 +02:00
|
|
|
await t
|
2021-01-15 17:02:39 +01:00
|
|
|
.expect(Selector("div").withAttribute("data-uid", FirstPhoto).visible, { timeout: 5000 })
|
|
|
|
.ok();
|
2020-06-01 17:04:47 +02:00
|
|
|
await page.editSelected();
|
2021-01-19 18:20:10 +01:00
|
|
|
await t.click(Selector("button.action-approve"));
|
|
|
|
if (t.browser.platform === "mobile") {
|
|
|
|
await t.click(Selector("button.action-apply")).click(Selector("button.action-close"));
|
|
|
|
} else {
|
|
|
|
await t.click(Selector("button.action-done", { timeout: 5000 }));
|
|
|
|
}
|
2021-01-13 16:56:45 +01:00
|
|
|
await page.selectPhotoFromUID(SecondPhoto);
|
2020-06-01 17:04:47 +02:00
|
|
|
await page.editSelected();
|
2020-05-28 17:59:57 +02:00
|
|
|
await t
|
2021-01-15 17:02:39 +01:00
|
|
|
.typeText(Selector('input[aria-label="Latitude"]'), "9.999")
|
2021-01-19 18:20:10 +01:00
|
|
|
.typeText(Selector('input[aria-label="Longitude"]'), "9.999");
|
|
|
|
if (t.browser.platform === "mobile") {
|
|
|
|
await t.click(Selector("button.action-apply")).click(Selector("button.action-close"));
|
|
|
|
} else {
|
|
|
|
await t.click(Selector("button.action-done", { timeout: 5000 }));
|
|
|
|
}
|
2021-01-18 20:43:34 +01:00
|
|
|
await page.setFilter("view", "Cards");
|
2021-01-15 17:02:39 +01:00
|
|
|
const ButtonThirdPhoto = 'div.is-photo[data-uid="' + ThirdPhoto + '"] button.action-approve';
|
2021-01-19 18:20:10 +01:00
|
|
|
await t.click(Selector(ButtonThirdPhoto));
|
|
|
|
if (t.browser.platform === "mobile") {
|
|
|
|
await t.eval(() => location.reload());
|
|
|
|
} else {
|
|
|
|
await t.click(Selector("button.action-reload"));
|
|
|
|
}
|
2021-01-15 17:02:39 +01:00
|
|
|
await t
|
|
|
|
.expect(Selector("div").withAttribute("data-uid", FirstPhoto).exists, { timeout: 5000 })
|
|
|
|
.notOk()
|
|
|
|
.expect(Selector("div").withAttribute("data-uid", SecondPhoto).exists, { timeout: 5000 })
|
|
|
|
.notOk()
|
|
|
|
.expect(Selector("div").withAttribute("data-uid", ThirdPhoto).exists, { timeout: 5000 })
|
2021-01-18 20:43:34 +01:00
|
|
|
.notOk();
|
|
|
|
await page.openNav();
|
|
|
|
await t.click(Selector(".nav-browse"));
|
2021-01-15 17:02:39 +01:00
|
|
|
await page.search("type:image");
|
|
|
|
await t
|
|
|
|
.expect(Selector("div").withAttribute("data-uid", FirstPhoto).visible)
|
|
|
|
.ok()
|
|
|
|
.expect(Selector("div").withAttribute("data-uid", SecondPhoto).visible)
|
|
|
|
.ok()
|
|
|
|
.expect(Selector("div").withAttribute("data-uid", ThirdPhoto).visible)
|
|
|
|
.ok();
|
|
|
|
}
|
2021-01-20 17:13:42 +01:00
|
|
|
);
|
2021-01-15 17:02:39 +01:00
|
|
|
|
|
|
|
test.meta("testID", "photos-004")("Like/dislike photo/video", async (t) => {
|
2021-01-20 12:09:01 +01:00
|
|
|
const FirstPhoto = await Selector("div.is-photo.type-image").nth(0).getAttribute("data-uid");
|
|
|
|
const SecondPhoto = await Selector("div.is-photo.type-image").nth(1).getAttribute("data-uid");
|
2021-01-15 17:02:39 +01:00
|
|
|
|
2021-01-18 20:43:34 +01:00
|
|
|
await page.openNav();
|
2021-01-15 17:02:39 +01:00
|
|
|
await t.click(Selector(".nav-video"));
|
|
|
|
const FirstVideo = await Selector("div.is-photo").nth(0).getAttribute("data-uid");
|
2021-01-18 20:43:34 +01:00
|
|
|
await page.openNav();
|
2021-01-15 17:02:39 +01:00
|
|
|
await t.click(Selector(".nav-favorites"));
|
|
|
|
await t
|
|
|
|
.expect(Selector("div").withAttribute("data-uid", FirstPhoto).exists, { timeout: 5000 })
|
|
|
|
.notOk()
|
2021-01-20 12:09:01 +01:00
|
|
|
.expect(Selector("div").withAttribute("data-uid", SecondPhoto).exists, { timeout: 5000 })
|
|
|
|
.notOk()
|
2021-01-15 17:02:39 +01:00
|
|
|
.expect(Selector("div").withAttribute("data-uid", FirstVideo).exists, { timeout: 5000 })
|
2021-01-18 20:43:34 +01:00
|
|
|
.notOk();
|
|
|
|
await page.openNav();
|
|
|
|
await t.click(Selector(".nav-browse"));
|
2021-01-15 17:02:39 +01:00
|
|
|
await page.toggleLike(FirstPhoto);
|
2021-01-20 12:09:01 +01:00
|
|
|
await page.selectPhotoFromUID(SecondPhoto);
|
|
|
|
await page.editSelected();
|
|
|
|
await page.turnSwitchOn("favorite");
|
|
|
|
await t
|
|
|
|
.click(Selector(".action-close"));
|
|
|
|
await t
|
|
|
|
.expect(Selector("div.is-photo").withAttribute("data-uid", FirstPhoto).exists, {
|
|
|
|
timeout: 5000,
|
|
|
|
})
|
|
|
|
.ok()
|
|
|
|
.expect(Selector("div.is-photo").withAttribute("data-uid", SecondPhoto).exists, {
|
2021-01-15 17:02:39 +01:00
|
|
|
timeout: 5000,
|
|
|
|
})
|
|
|
|
.ok();
|
2021-01-18 20:43:34 +01:00
|
|
|
await page.openNav();
|
2021-01-15 17:02:39 +01:00
|
|
|
await t.click(Selector(".nav-video"));
|
|
|
|
await page.toggleLike(FirstVideo);
|
2021-01-19 18:20:10 +01:00
|
|
|
if (t.browser.platform === "mobile") {
|
|
|
|
await t.eval(() => location.reload());
|
|
|
|
} else {
|
|
|
|
await t.click(Selector("button.action-reload"));
|
|
|
|
}
|
2021-01-15 17:02:39 +01:00
|
|
|
await t
|
|
|
|
.expect(Selector("div.is-photo").withAttribute("data-uid", FirstVideo).exists, {
|
|
|
|
timeout: 5000,
|
|
|
|
})
|
|
|
|
.ok();
|
2021-01-18 20:43:34 +01:00
|
|
|
await page.openNav();
|
2021-01-15 17:02:39 +01:00
|
|
|
await t.click(Selector(".nav-favorites"));
|
|
|
|
await t
|
|
|
|
.expect(Selector("div").withAttribute("data-uid", FirstPhoto).exists, { timeout: 5000 })
|
|
|
|
.ok()
|
2021-01-20 12:09:01 +01:00
|
|
|
.expect(Selector("div").withAttribute("data-uid", SecondPhoto).exists, { timeout: 5000 })
|
2021-01-15 17:02:39 +01:00
|
|
|
.ok()
|
2021-01-20 12:09:01 +01:00
|
|
|
.expect(Selector("div").withAttribute("data-uid", FirstVideo).exists, { timeout: 5000 })
|
2021-01-15 17:02:39 +01:00
|
|
|
.ok();
|
|
|
|
await page.toggleLike(FirstVideo);
|
|
|
|
await page.toggleLike(FirstPhoto);
|
2021-01-20 12:09:01 +01:00
|
|
|
await page.editSelected();
|
|
|
|
await page.turnSwitchOff("private");
|
|
|
|
await t
|
|
|
|
.click(Selector(".action-close"));
|
|
|
|
await page.clearSelection();
|
2021-01-19 18:20:10 +01:00
|
|
|
if (t.browser.platform === "mobile") {
|
|
|
|
await t.eval(() => location.reload());
|
|
|
|
} else {
|
|
|
|
await t.click(Selector("button.action-reload"));
|
|
|
|
}
|
2021-01-15 17:02:39 +01:00
|
|
|
await t
|
|
|
|
.expect(Selector("div").withAttribute("data-uid", FirstPhoto).exists, { timeout: 5000 })
|
|
|
|
.notOk()
|
2021-01-20 12:09:01 +01:00
|
|
|
.expect(Selector("div").withAttribute("data-uid", SecondPhoto).exists, { timeout: 5000 })
|
|
|
|
.notOk()
|
2021-01-15 17:02:39 +01:00
|
|
|
.expect(Selector("div").withAttribute("data-uid", FirstVideo).exists, { timeout: 5000 })
|
|
|
|
.notOk();
|
2020-05-28 10:01:11 +02:00
|
|
|
});
|
|
|
|
|
2020-05-28 16:36:32 +02:00
|
|
|
|
2021-01-15 17:02:39 +01:00
|
|
|
|
|
|
|
test.meta("testID", "photos-007")("Edit photo/video", async (t) => {
|
|
|
|
await page.openNav();
|
2021-01-18 20:43:34 +01:00
|
|
|
await t.click(Selector(".nav-browse"));
|
2021-01-15 17:02:39 +01:00
|
|
|
await page.setFilter("view", "Cards");
|
2021-01-25 14:58:03 +01:00
|
|
|
const FirstPhoto = await Selector("div.is-photo.type-image").nth(0).getAttribute("data-uid");
|
2021-01-15 17:02:39 +01:00
|
|
|
await t
|
|
|
|
.click(Selector("button.action-title-edit").withAttribute("data-uid", FirstPhoto))
|
|
|
|
.expect(Selector('input[aria-label="Latitude"]').visible)
|
2021-01-25 14:58:03 +01:00
|
|
|
.ok();
|
2021-01-15 17:02:39 +01:00
|
|
|
await t.click(Selector("button.action-next"));
|
|
|
|
await t
|
|
|
|
.expect(Selector("button.action-previous").getAttribute("disabled"))
|
|
|
|
.notEql("disabled")
|
|
|
|
.click(Selector("button.action-previous"))
|
|
|
|
.click(Selector("button.action-close"))
|
|
|
|
.click(Selector("div.is-photo").withAttribute("data-uid", FirstPhoto))
|
|
|
|
.expect(Selector("#p-photo-viewer").visible)
|
|
|
|
.ok()
|
|
|
|
.hover(Selector(".action-edit"))
|
|
|
|
.click(Selector(".action-edit"))
|
|
|
|
.expect(Selector('input[aria-label="Latitude"]').visible)
|
|
|
|
.ok();
|
|
|
|
|
|
|
|
const FirstPhotoTitle = await Selector(".input-title input").value;
|
|
|
|
const FirstPhotoLocalTime = await Selector(".input-local-time input").value;
|
|
|
|
const FirstPhotoUTCTime = await Selector(".input-utc-time input").value;
|
|
|
|
const FirstPhotoDay = await Selector(".input-day input").value;
|
|
|
|
const FirstPhotoMonth = await Selector(".input-month input").value;
|
|
|
|
const FirstPhotoYear = await Selector(".input-year input").value;
|
|
|
|
const FirstPhotoTimezone = await Selector(".input-timezone input").value;
|
|
|
|
const FirstPhotoLatitude = await Selector(".input-latitude input").value;
|
|
|
|
const FirstPhotoLongitude = await Selector(".input-longitude input").value;
|
|
|
|
const FirstPhotoAltitude = await Selector(".input-altitude input").value;
|
|
|
|
const FirstPhotoCountry = await Selector(".input-country input").value;
|
|
|
|
const FirstPhotoCamera = await Selector("div.p-camera-select div.v-select__selection").innerText;
|
|
|
|
const FirstPhotoIso = await Selector(".input-iso input").value;
|
|
|
|
const FirstPhotoExposure = await Selector(".input-exposure input").value;
|
|
|
|
const FirstPhotoLens = await Selector("div.p-lens-select div.v-select__selection").innerText;
|
|
|
|
const FirstPhotoFnumber = await Selector(".input-fnumber input").value;
|
|
|
|
const FirstPhotoFocalLength = await Selector(".input-focal-length input").value;
|
|
|
|
const FirstPhotoSubject = await Selector(".input-subject textarea").value;
|
|
|
|
const FirstPhotoArtist = await Selector(".input-artist input").value;
|
|
|
|
const FirstPhotoCopyright = await Selector(".input-copyright input").value;
|
|
|
|
const FirstPhotoLicense = await Selector(".input-license textarea").value;
|
|
|
|
const FirstPhotoDescription = await Selector(".input-description textarea").value;
|
|
|
|
const FirstPhotoKeywords = await Selector(".input-keywords textarea").value;
|
|
|
|
const FirstPhotoNotes = await Selector(".input-notes textarea").value;
|
|
|
|
|
|
|
|
await t
|
|
|
|
.typeText(Selector(".input-title input"), "Not saved photo title", { replace: true })
|
|
|
|
.click(Selector("button.action-close"))
|
|
|
|
.click(Selector("button.action-date-edit").withAttribute("data-uid", FirstPhoto))
|
|
|
|
.expect(Selector(".input-title input").value)
|
|
|
|
.eql(FirstPhotoTitle)
|
|
|
|
.typeText(Selector(".input-title input"), "New Photo Title", { replace: true })
|
|
|
|
.typeText(Selector(".input-timezone input"), "Europe/Mosc", { replace: true })
|
|
|
|
.click(Selector("div").withText("Europe/Moscow").parent('div[role="listitem"]'))
|
|
|
|
.typeText(Selector(".input-day input"), "15", { replace: true })
|
|
|
|
.pressKey("enter")
|
|
|
|
.typeText(Selector(".input-month input"), "07", { replace: true })
|
|
|
|
.pressKey("enter")
|
|
|
|
.typeText(Selector(".input-year input"), "2019", { replace: true })
|
|
|
|
.click(Selector("div").withText("2019").parent('div[role="listitem"]'))
|
|
|
|
.click(Selector(".input-local-time input"))
|
|
|
|
.pressKey("ctrl+a delete")
|
|
|
|
.typeText(Selector(".input-local-time input"), "04:30:30", { replace: true })
|
|
|
|
.pressKey("enter")
|
|
|
|
.typeText(Selector(".input-altitude input"), "-1", { replace: true })
|
|
|
|
.typeText(Selector(".input-latitude input"), "41.15333", { replace: true })
|
|
|
|
.typeText(Selector(".input-longitude input"), "20.168331", { replace: true })
|
|
|
|
//.click(Selector('.input-camera input'))
|
|
|
|
//.hover(Selector('div').withText('Apple iPhone 6').parent('div[role="listitem"]'))
|
|
|
|
//.click(Selector('div').withText('Apple iPhone 6').parent('div[role="listitem"]'))
|
|
|
|
//.click(Selector('.input-lens input'))
|
|
|
|
//.click(Selector('div').withText('Apple iPhone 5s back camera 4.15mm f/2.2').parent('div[role="listitem"]'))
|
|
|
|
.typeText(Selector(".input-iso input"), "32", { replace: true })
|
|
|
|
.typeText(Selector(".input-exposure input"), "1/32", { replace: true })
|
|
|
|
.typeText(Selector(".input-fnumber input"), "29", { replace: true })
|
|
|
|
.typeText(Selector(".input-focal-length input"), "33", { replace: true })
|
|
|
|
.typeText(Selector(".input-subject textarea"), "Super nice edited photo", { replace: true })
|
|
|
|
.typeText(Selector(".input-artist input"), "Happy", { replace: true })
|
|
|
|
.typeText(Selector(".input-copyright input"), "Happy2020", { replace: true })
|
|
|
|
.typeText(Selector(".input-license textarea"), "Super nice cat license", { replace: true })
|
|
|
|
.typeText(Selector(".input-description textarea"), "Description of a nice image :)", {
|
|
|
|
replace: true,
|
|
|
|
})
|
|
|
|
.typeText(Selector(".input-keywords textarea"), ", cat, love")
|
|
|
|
.typeText(Selector(".input-notes textarea"), "Some notes", { replace: true })
|
|
|
|
.click(Selector("button.action-approve"));
|
2021-01-19 18:20:10 +01:00
|
|
|
await t.expect(Selector(".input-latitude input").visible, { timeout: 5000 }).ok();
|
|
|
|
if (t.browser.platform === "mobile") {
|
|
|
|
await t.click(Selector("button.action-apply")).click(Selector("button.action-close"));
|
|
|
|
} else {
|
|
|
|
await t.click(Selector("button.action-done", { timeout: 5000 }));
|
|
|
|
}
|
|
|
|
if (t.browser.platform === "mobile") {
|
|
|
|
await t.eval(() => location.reload());
|
|
|
|
} else {
|
|
|
|
await t.click(Selector("button.action-reload"));
|
|
|
|
}
|
2021-01-15 17:02:39 +01:00
|
|
|
await t
|
|
|
|
.expect(Selector("button.action-title-edit").withAttribute("data-uid", FirstPhoto).innerText)
|
|
|
|
.eql("New Photo Title");
|
|
|
|
await page.selectPhotoFromUID(FirstPhoto);
|
|
|
|
await page.editSelected();
|
2021-02-05 16:48:39 +01:00
|
|
|
await page.checkEditFormValues("New Photo Title", "15", "07", "2019", "04:30:30",
|
|
|
|
"01:30:30", "Europe/Moscow", "Albania", "-1", "", "", "",
|
|
|
|
"32", "1/32", "", "29", "33", "Super nice edited photo", "Happy",
|
|
|
|
"Happy2020", "Super nice cat license", "Description of a nice image :)", "cat", "");
|
2021-01-15 17:02:39 +01:00
|
|
|
if (FirstPhotoTitle.empty || FirstPhotoTitle === "") {
|
|
|
|
await t.click(Selector(".input-title input")).pressKey("ctrl+a delete");
|
|
|
|
} else {
|
|
|
|
await t.typeText(Selector(".input-title input"), FirstPhotoTitle, { replace: true });
|
|
|
|
}
|
|
|
|
await t
|
|
|
|
.typeText(Selector(".input-day input"), FirstPhotoDay, { replace: true })
|
|
|
|
.pressKey("enter")
|
|
|
|
.typeText(Selector(".input-month input"), FirstPhotoMonth, { replace: true })
|
|
|
|
.pressKey("enter")
|
|
|
|
.typeText(Selector(".input-year input"), FirstPhotoYear, { replace: true })
|
|
|
|
.pressKey("enter");
|
|
|
|
if (FirstPhotoLocalTime.empty || FirstPhotoLocalTime === "") {
|
|
|
|
await t.click(Selector(".input-local-time input")).pressKey("ctrl+a delete");
|
|
|
|
} else {
|
|
|
|
await t
|
|
|
|
.click(Selector(".input-local-time input"))
|
|
|
|
.pressKey("ctrl+a delete")
|
|
|
|
.typeText(Selector(".input-local-time input"), FirstPhotoLocalTime, { replace: true })
|
|
|
|
.pressKey("enter");
|
|
|
|
}
|
|
|
|
if (FirstPhotoTimezone.empty || FirstPhotoTimezone === "") {
|
|
|
|
await t
|
|
|
|
.click(Selector(".input-timezone input"))
|
|
|
|
.typeText(Selector(".input-timezone input"), "UTC", { replace: true })
|
|
|
|
.pressKey("enter");
|
|
|
|
} else {
|
|
|
|
await t
|
|
|
|
.typeText(Selector(".input-timezone input"), FirstPhotoTimezone, { replace: true })
|
|
|
|
.pressKey("enter");
|
|
|
|
}
|
|
|
|
if (FirstPhotoLatitude.empty || FirstPhotoLatitude === "") {
|
|
|
|
await t.click(Selector(".input-latitude input")).pressKey("ctrl+a delete");
|
|
|
|
} else {
|
|
|
|
await t.typeText(Selector(".input-latitude input"), FirstPhotoLatitude, { replace: true });
|
|
|
|
}
|
|
|
|
if (FirstPhotoLongitude.empty || FirstPhotoLongitude === "") {
|
|
|
|
await t.click(Selector(".input-longitude input")).pressKey("ctrl+a delete");
|
|
|
|
} else {
|
|
|
|
await t.typeText(Selector(".input-longitude input"), FirstPhotoLongitude, { replace: true });
|
|
|
|
}
|
|
|
|
if (FirstPhotoAltitude.empty || FirstPhotoAltitude === "") {
|
|
|
|
await t.click(Selector(".input-altitude input")).pressKey("ctrl+a delete");
|
|
|
|
} else {
|
|
|
|
await t.typeText(Selector(".input-altitude input"), FirstPhotoAltitude, { replace: true });
|
|
|
|
}
|
|
|
|
if (FirstPhotoCountry.empty || FirstPhotoCountry === "") {
|
|
|
|
await t.click(Selector(".input-longitude input")).pressKey("ctrl+a delete");
|
|
|
|
} else {
|
|
|
|
await t
|
|
|
|
.click(Selector(".input-country input"))
|
|
|
|
.pressKey("ctrl+a delete")
|
|
|
|
.typeText(Selector(".input-country input"), FirstPhotoCountry, { replace: true })
|
|
|
|
.pressKey("enter");
|
|
|
|
}
|
|
|
|
// if (FirstPhotoCamera.empty || FirstPhotoCamera === "")
|
|
|
|
//{ await t
|
|
|
|
//.click(Selector('.input-camera input'))
|
|
|
|
// .hover(Selector('div').withText('Unknown').parent('div[role="listitem"]'))
|
|
|
|
// .click(Selector('div').withText('Unknown').parent('div[role="listitem"]'))}
|
|
|
|
//else
|
|
|
|
//{await t
|
|
|
|
// .click(Selector('.input-camera input'))
|
|
|
|
// .hover(Selector('div').withText(FirstPhotoCamera).parent('div[role="listitem"]'))
|
|
|
|
// .click(Selector('div').withText(FirstPhotoCamera).parent('div[role="listitem"]'))}
|
|
|
|
//if (FirstPhotoLens.empty || FirstPhotoLens === "")
|
|
|
|
//{ await t
|
|
|
|
// .click(Selector('.input-lens input'))
|
|
|
|
// .click(Selector('div').withText('Unknown').parent('div[role="listitem"]'))}
|
|
|
|
//else
|
|
|
|
//{await t
|
|
|
|
// .click(Selector('.input-lens input'))
|
|
|
|
// .click(Selector('div').withText(FirstPhotoLens).parent('div[role="listitem"]'))}
|
|
|
|
if (FirstPhotoIso.empty || FirstPhotoIso === "") {
|
|
|
|
await t.click(Selector(".input-iso input")).pressKey("ctrl+a delete");
|
|
|
|
} else {
|
|
|
|
await t.typeText(Selector(".input-iso input"), FirstPhotoIso, { replace: true });
|
|
|
|
}
|
|
|
|
if (FirstPhotoExposure.empty || FirstPhotoExposure === "") {
|
|
|
|
await t.click(Selector(".input-exposure input")).pressKey("ctrl+a delete");
|
|
|
|
} else {
|
|
|
|
await t.typeText(Selector(".input-exposure input"), FirstPhotoExposure, { replace: true });
|
|
|
|
}
|
|
|
|
if (FirstPhotoFnumber.empty || FirstPhotoFnumber === "") {
|
|
|
|
await t.click(Selector(".input-fnumber input")).pressKey("ctrl+a delete");
|
|
|
|
} else {
|
|
|
|
await t.typeText(Selector(".input-fnumber input"), FirstPhotoFnumber, { replace: true });
|
|
|
|
}
|
|
|
|
if (FirstPhotoFocalLength.empty || FirstPhotoFocalLength === "") {
|
|
|
|
await t.click(Selector(".input-focal-length input")).pressKey("ctrl+a delete");
|
|
|
|
} else {
|
|
|
|
await t.typeText(Selector(".input-focal-length input"), FirstPhotoFocalLength, {
|
|
|
|
replace: true,
|
|
|
|
});
|
|
|
|
}
|
|
|
|
if (FirstPhotoSubject.empty || FirstPhotoSubject === "") {
|
|
|
|
await t.click(Selector(".input-subject textarea")).pressKey("ctrl+a delete");
|
|
|
|
} else {
|
|
|
|
await t.typeText(Selector(".input-subject textarea"), FirstPhotoSubject, { replace: true });
|
|
|
|
}
|
|
|
|
if (FirstPhotoArtist.empty || FirstPhotoSubject === "") {
|
|
|
|
await t.click(Selector(".input-artist input")).pressKey("ctrl+a delete");
|
|
|
|
} else {
|
|
|
|
await t.typeText(Selector(".input-artist input"), FirstPhotoArtist, { replace: true });
|
|
|
|
}
|
|
|
|
if (FirstPhotoCopyright.empty || FirstPhotoCopyright === "") {
|
|
|
|
await t.click(Selector(".input-copyright input")).pressKey("ctrl+a delete");
|
|
|
|
} else {
|
|
|
|
await t.typeText(Selector(".input-copyright input"), FirstPhotoCopyright, { replace: true });
|
|
|
|
}
|
|
|
|
if (FirstPhotoLicense.empty || FirstPhotoLicense === "") {
|
|
|
|
await t.click(Selector(".input-license textarea")).pressKey("ctrl+a delete");
|
|
|
|
} else {
|
|
|
|
await t.typeText(Selector(".input-license textarea"), FirstPhotoLicense, { replace: true });
|
|
|
|
}
|
|
|
|
if (FirstPhotoDescription.empty || FirstPhotoDescription === "") {
|
|
|
|
await t.click(Selector(".input-description textarea")).pressKey("ctrl+a delete");
|
|
|
|
} else {
|
|
|
|
await t.typeText(Selector(".input-description textarea"), FirstPhotoDescription, {
|
|
|
|
replace: true,
|
|
|
|
});
|
|
|
|
}
|
|
|
|
if (FirstPhotoKeywords.empty || FirstPhotoKeywords === "") {
|
|
|
|
await t.click(Selector(".input-keywords textarea")).pressKey("ctrl+a delete");
|
|
|
|
} else {
|
|
|
|
await t.typeText(Selector(".input-keywords textarea"), FirstPhotoKeywords, { replace: true });
|
|
|
|
}
|
|
|
|
if (FirstPhotoNotes.empty || FirstPhotoNotes === "") {
|
|
|
|
await t.click(Selector(".input-notes textarea")).pressKey("ctrl+a delete");
|
|
|
|
} else {
|
|
|
|
await t.typeText(Selector(".input-notes textarea"), FirstPhotoNotes, { replace: true });
|
|
|
|
}
|
2021-01-19 18:20:10 +01:00
|
|
|
if (t.browser.platform === "mobile") {
|
|
|
|
await t.click(Selector("button.action-apply")).click(Selector("button.action-close"));
|
|
|
|
} else {
|
|
|
|
await t.click(Selector("button.action-done", { timeout: 5000 }));
|
|
|
|
}
|
2021-01-15 17:02:39 +01:00
|
|
|
const clipboardCount = await Selector("span.count-clipboard", { timeout: 5000 });
|
|
|
|
await t
|
|
|
|
.expect(clipboardCount.textContent)
|
|
|
|
.eql("1")
|
|
|
|
.click(Selector(".action-clear"))
|
|
|
|
.expect(Selector("button.action-menu").exists, { timeout: 5000 })
|
|
|
|
.notOk();
|
2020-10-20 18:10:38 +02:00
|
|
|
});
|
2020-05-28 10:01:11 +02:00
|
|
|
|
2021-01-15 17:02:39 +01:00
|
|
|
test.meta("testID", "photos-008")("Change primary file", async (t) => {
|
|
|
|
await page.openNav();
|
|
|
|
await t.click(Selector(".nav-browse")).click(Selector(".p-expand-search"));
|
|
|
|
await page.search("ski");
|
|
|
|
const SequentialPhoto = await Selector("div.is-photo").nth(0).getAttribute("data-uid");
|
|
|
|
|
2021-01-18 20:43:34 +01:00
|
|
|
await t.expect(Selector(".input-open").visible).ok();
|
|
|
|
if (t.browser.platform === "desktop") {
|
|
|
|
console.log(t.browser.platform);
|
|
|
|
await t
|
|
|
|
.click(Selector(".input-open"))
|
|
|
|
.click(Selector(".action-next", { timeout: 5000 }))
|
|
|
|
.click(Selector(".action-previous"))
|
|
|
|
.click(Selector(".action-close"));
|
|
|
|
}
|
|
|
|
await page.setFilter("view", "Cards");
|
2021-01-15 17:02:39 +01:00
|
|
|
await t
|
|
|
|
.click(Selector("button.action-title-edit").withAttribute("data-uid", SequentialPhoto))
|
|
|
|
.click(Selector("#tab-files"));
|
|
|
|
const FirstFile = await Selector("div.caption").nth(0).innerText;
|
|
|
|
await t
|
|
|
|
.expect(FirstFile)
|
|
|
|
.contains("photos8_1_ski.jpg")
|
|
|
|
.click(Selector("li.v-expansion-panel__container").nth(1))
|
|
|
|
.click(Selector(".action-primary"))
|
|
|
|
.click(Selector("button.action-close"))
|
|
|
|
.click(Selector("button.action-title-edit").withAttribute("data-uid", SequentialPhoto));
|
|
|
|
const FirstFileAfterChange = await Selector("div.caption").nth(0).innerText;
|
|
|
|
await t
|
|
|
|
.expect(FirstFileAfterChange)
|
|
|
|
.notContains("photos8_1_ski.jpg")
|
|
|
|
.expect(FirstFileAfterChange)
|
|
|
|
.contains("photos8_2_ski.jpg");
|
2020-05-31 19:31:48 +02:00
|
|
|
});
|
2020-05-28 10:01:11 +02:00
|
|
|
|
2021-01-15 17:02:39 +01:00
|
|
|
test.meta("testID", "photos-009")("Navigate from card view to place", async (t) => {
|
|
|
|
await page.setFilter("view", "Cards");
|
|
|
|
await t
|
|
|
|
.click(Selector("button.action-location").nth(0))
|
|
|
|
.expect(Selector("#map").exists, { timeout: 15000 })
|
|
|
|
.ok()
|
|
|
|
.expect(Selector("div.p-map-control").visible)
|
|
|
|
.ok()
|
|
|
|
.expect(Selector(".input-search input").value)
|
|
|
|
.notEql("");
|
2020-05-31 19:31:48 +02:00
|
|
|
});
|
2020-05-28 10:01:11 +02:00
|
|
|
|
2021-01-15 17:02:39 +01:00
|
|
|
test.meta("testID", "photos-010")("Ungroup files", async (t) => {
|
|
|
|
await page.openNav();
|
|
|
|
await t.click(Selector(".nav-browse")).click(Selector(".p-expand-search"));
|
|
|
|
await page.search("group");
|
2021-01-18 20:43:34 +01:00
|
|
|
await page.setFilter("view", "Cards");
|
2021-01-15 17:02:39 +01:00
|
|
|
const PhotoCount = await Selector("button.action-title-edit", { timeout: 5000 }).count;
|
|
|
|
const SequentialPhoto = await Selector("div.is-photo").nth(0).getAttribute("data-uid");
|
2021-01-18 20:43:34 +01:00
|
|
|
await t.expect(PhotoCount).eql(1);
|
|
|
|
await page.openNav();
|
2021-01-15 17:02:39 +01:00
|
|
|
await t
|
|
|
|
.click(Selector("div.nav-browse + div"))
|
|
|
|
.click(Selector(".nav-stacks"))
|
|
|
|
.expect(Selector(".input-open").visible)
|
|
|
|
.ok()
|
|
|
|
.click(Selector("button.action-title-edit").withAttribute("data-uid", SequentialPhoto))
|
|
|
|
.click(Selector("#tab-files"))
|
2021-02-01 14:05:31 +01:00
|
|
|
.click(Selector("div.v-expansion-panel__header__icon").nth(0))
|
|
|
|
.click(Selector("div.v-expansion-panel__header__icon").nth(1))
|
2021-01-15 17:02:39 +01:00
|
|
|
.click(Selector(".action-unstack"))
|
|
|
|
.wait(12000)
|
2021-01-18 20:43:34 +01:00
|
|
|
.click(Selector("button.action-close"));
|
|
|
|
await page.openNav();
|
|
|
|
await t.click(Selector(".nav-browse")).click(Selector(".p-expand-search"));
|
2021-01-15 17:02:39 +01:00
|
|
|
await page.search("group");
|
2021-01-19 18:20:10 +01:00
|
|
|
if (t.browser.platform === "mobile") {
|
|
|
|
await t.eval(() => location.reload());
|
|
|
|
} else {
|
|
|
|
await t.click(Selector("button.action-reload"));
|
|
|
|
}
|
2021-01-15 17:02:39 +01:00
|
|
|
const PhotoCountAfterUngroup = await Selector("button.action-title-edit", { timeout: 5000 })
|
|
|
|
.count;
|
|
|
|
await t.expect(PhotoCountAfterUngroup).eql(2);
|
2020-07-07 09:48:21 +02:00
|
|
|
});
|
2021-01-13 16:56:45 +01:00
|
|
|
|
2021-01-25 14:58:03 +01:00
|
|
|
test.skip.meta("testID", "photos-011")("Delete non primary file", async (t) => {
|
2021-01-15 17:02:39 +01:00
|
|
|
await page.openNav();
|
|
|
|
await t
|
|
|
|
.click(Selector(".nav-library"))
|
|
|
|
.click(Selector("#tab-library-import"))
|
|
|
|
.click(Selector(".input-import-folder input"), { timeout: 5000 })
|
|
|
|
.click(Selector("div.v-list__tile__title").withText("/pizza"))
|
|
|
|
.click(Selector(".action-import"))
|
2021-01-18 20:43:34 +01:00
|
|
|
.wait(10000);
|
|
|
|
await page.openNav();
|
|
|
|
await t.click(Selector(".nav-browse")).click(Selector(".p-expand-search"));
|
2021-01-15 17:02:39 +01:00
|
|
|
await page.search("mogale");
|
2021-01-18 20:43:34 +01:00
|
|
|
await page.setFilter("view", "Cards");
|
2021-01-15 17:02:39 +01:00
|
|
|
const PhotoCount = await Selector("button.action-title-edit", { timeout: 5000 }).count;
|
|
|
|
|
|
|
|
const Photo = await Selector("div.is-photo").nth(0).getAttribute("data-uid");
|
|
|
|
await t
|
|
|
|
.expect(PhotoCount)
|
|
|
|
.eql(1)
|
|
|
|
.click(Selector("button.action-title-edit").withAttribute("data-uid", Photo))
|
|
|
|
.click(Selector("#tab-files"));
|
|
|
|
const FileCount = await Selector("li.v-expansion-panel__container", { timeout: 5000 }).count;
|
|
|
|
await t
|
|
|
|
.expect(FileCount)
|
|
|
|
.eql(2)
|
|
|
|
.click(Selector("li.v-expansion-panel__container").nth(1))
|
|
|
|
.click(Selector(".action-delete"))
|
|
|
|
.click(Selector(".action-confirm"))
|
|
|
|
.wait(10000);
|
|
|
|
const FileCountAfterDeletion = await Selector("li.v-expansion-panel__container", {
|
|
|
|
timeout: 5000,
|
|
|
|
}).count;
|
|
|
|
await t.expect(FileCountAfterDeletion).eql(1);
|
2021-01-20 17:13:42 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
test.meta("testID", "photos-012")("Mark photos/videos as panorama/scan", async (t) => {
|
|
|
|
await page.openNav();
|
|
|
|
await page.search("photo:true");
|
|
|
|
const FirstPhoto = await Selector("div.is-photo.type-image").nth(0).getAttribute("data-uid");
|
|
|
|
await page.search("video:true");
|
|
|
|
const FirstVideo = await Selector("div.is-photo").nth(1).getAttribute("data-uid");
|
|
|
|
await page.openNav();
|
|
|
|
await t.click(Selector(".nav-browse + div"))
|
|
|
|
.click(Selector(".nav-scans"))
|
|
|
|
.expect(Selector("div").withAttribute("data-uid", FirstPhoto).exists, { timeout: 5000 })
|
|
|
|
.notOk()
|
|
|
|
.expect(Selector("div").withAttribute("data-uid", FirstVideo).exists, { timeout: 5000 })
|
|
|
|
.notOk();
|
|
|
|
if (t.browser.platform === "mobile") {
|
|
|
|
await page.openNav();
|
|
|
|
}
|
|
|
|
await t
|
|
|
|
.click(Selector(".nav-panoramas"))
|
|
|
|
.expect(Selector("div").withAttribute("data-uid", FirstPhoto).exists, { timeout: 5000 })
|
|
|
|
.notOk()
|
|
|
|
.expect(Selector("div").withAttribute("data-uid", FirstVideo).exists, { timeout: 5000 })
|
|
|
|
.notOk();
|
|
|
|
await page.openNav();
|
|
|
|
await t.click(Selector(".nav-browse"));
|
|
|
|
await page.selectPhotoFromUID(FirstPhoto);
|
|
|
|
await page.editSelected();
|
|
|
|
await page.turnSwitchOn("scan");
|
|
|
|
await page.turnSwitchOn("panorama");
|
|
|
|
await t.click(Selector(".action-close"));
|
|
|
|
await page.clearSelection();
|
|
|
|
await page.selectPhotoFromUID(FirstVideo);
|
|
|
|
await page.editSelected();
|
|
|
|
await page.turnSwitchOn("panorama");
|
|
|
|
await t.click(Selector(".action-close"));
|
|
|
|
await page.clearSelection();
|
|
|
|
await t.expect(Selector("div").withAttribute("data-uid", FirstPhoto).exists, { timeout: 5000 })
|
|
|
|
.ok()
|
|
|
|
.expect(Selector("div").withAttribute("data-uid", FirstVideo).exists, { timeout: 5000 })
|
|
|
|
.ok();
|
|
|
|
if (t.browser.platform === "mobile") {
|
|
|
|
await page.openNav();
|
|
|
|
}
|
|
|
|
await t
|
|
|
|
.click(Selector(".nav-scans"))
|
|
|
|
.expect(Selector("div").withAttribute("data-uid", FirstPhoto).exists, { timeout: 5000 })
|
|
|
|
.ok();
|
|
|
|
if (t.browser.platform === "mobile") {
|
|
|
|
await page.openNav();
|
|
|
|
}
|
|
|
|
await t
|
|
|
|
.click(Selector(".nav-panoramas"))
|
|
|
|
await page.selectPhotoFromUID(FirstPhoto);
|
|
|
|
await page.editSelected();
|
|
|
|
await page.turnSwitchOff("panorama");
|
|
|
|
await page.turnSwitchOff("scan");
|
|
|
|
await t.click(Selector(".action-close"));
|
|
|
|
await page.clearSelection();
|
|
|
|
await page.selectPhotoFromUID(FirstVideo);
|
|
|
|
await page.editSelected();
|
|
|
|
await page.turnSwitchOff("panorama");
|
|
|
|
await t.click(Selector(".action-close"));
|
|
|
|
await page.clearSelection();
|
|
|
|
if (t.browser.platform === "mobile") {
|
|
|
|
await t.eval(() => location.reload());
|
|
|
|
} else {
|
|
|
|
await t.click(Selector("button.action-reload"));
|
|
|
|
}
|
|
|
|
await t.expect(Selector("div").withAttribute("data-uid", FirstPhoto).exists, { timeout: 5000 })
|
|
|
|
.notOk()
|
|
|
|
.expect(Selector("div").withAttribute("data-uid", FirstVideo).exists, { timeout: 5000 })
|
|
|
|
.notOk();
|
|
|
|
if (t.browser.platform === "mobile") {
|
|
|
|
await page.openNav();
|
|
|
|
await t.click(Selector(".nav-browse + div"));
|
|
|
|
}
|
|
|
|
await t
|
|
|
|
.click(Selector(".nav-scans"))
|
|
|
|
.expect(Selector("div").withAttribute("data-uid", FirstPhoto).exists, { timeout: 5000 })
|
|
|
|
.notOk()
|
|
|
|
.expect(Selector("div").withAttribute("data-uid", FirstVideo).exists, { timeout: 5000 })
|
|
|
|
.notOk();
|
2021-01-25 19:12:25 +01:00
|
|
|
});
|
2021-01-25 14:58:03 +01:00
|
|
|
|