App Store header and screenshots from 1.14.1 !189
20 files changed, +56 −3
Layout: unified · split
AppStore/header-16x9.png added
Binary file not shown.
AppStore/header-21x9.png added
Binary file not shown.
AppStore/header.html added +42
| @@ -0,0 +1,42 @@ | |||
| 1 | <!doctype html> | ||
| 2 | <!-- Product page header, after the krz.sh hero: three iPhones fanned over the app's indigo (#4338ca). | ||
| 3 | header.html renders the 21:9 header (3840x1646), header.html#wide the 16:9 one (5244x2950), | ||
| 4 | with headless Chromium, then the alpha channel is removed: | ||
| 5 | Chromium --headless --hide-scrollbars --force-device-scale-factor=1 --window-size=3840,1646 --screenshot=header-21x9.png header.html | ||
| 6 | Chromium --headless --hide-scrollbars --force-device-scale-factor=1 --window-size=5244,2950 --screenshot=header-16x9.png "file://$PWD/header.html#wide" | ||
| 7 | magick header-21x9.png -alpha off PNG24:header-21x9.png --> | ||
| 8 | <html> | ||
| 9 | <head> | ||
| 10 | <meta charset="utf-8"> | ||
| 11 | <style> | ||
| 12 | :root { --u: 1px; --top: 180px; } | ||
| 13 | * { box-sizing: border-box; } | ||
| 14 | html, body { margin: 0; width: 3840px; height: 1646px; overflow: hidden; } | ||
| 15 | body { | ||
| 16 | position: relative; | ||
| 17 | background: | ||
| 18 | radial-gradient(ellipse 55% 75% at 50% 30%, #6d64e8 0%, #4338ca 35%, #272080 70%, #120f3d 100%); | ||
| 19 | } | ||
| 20 | .iphone { | ||
| 21 | position: absolute; left: 50%; top: var(--top); | ||
| 22 | width: calc(860 * var(--u)); height: calc(1868 * var(--u)); | ||
| 23 | padding: calc(24 * var(--u)); border-radius: calc(140 * var(--u)); background: #0c0c12; | ||
| 24 | box-shadow: 0 calc(50 * var(--u)) calc(120 * var(--u)) rgba(0, 0, 0, 0.5); | ||
| 25 | } | ||
| 26 | .iphone img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; border-radius: calc(116 * var(--u)); } | ||
| 27 | .center { transform: translateX(-50%); z-index: 2; } | ||
| 28 | .left { transform: translate(calc(-50% - 760 * var(--u)), calc(120 * var(--u))) rotate(-8deg); } | ||
| 29 | .right { transform: translate(calc(-50% + 760 * var(--u)), calc(120 * var(--u))) rotate(8deg); } | ||
| 30 | |||
| 31 | /* 16:9, 5244x2950. */ | ||
| 32 | html.wide { --u: 1.6px; --top: 420px; } | ||
| 33 | html.wide, .wide body { width: 5244px; height: 2950px; } | ||
| 34 | </style> | ||
| 35 | <script>if (location.hash === "#wide") document.documentElement.className = "wide";</script> | ||
| 36 | </head> | ||
| 37 | <body> | ||
| 38 | <div class="iphone left"><img src="screenshots/iphone-6.9/02-repo.png"></div> | ||
| 39 | <div class="iphone right"><img src="screenshots/iphone-6.9/03-mr-list.png"></div> | ||
| 40 | <div class="iphone center"><img src="screenshots/iphone-6.9/01-dashboard.png"></div> | ||
| 41 | </body> | ||
| 42 | </html> | ||
AppStore/icon-64.png added
Binary file not shown.
AppStore/screenshots/ipad/01-dashboard.png added
Binary file not shown.
AppStore/screenshots/ipad/02-explore.png added
Binary file not shown.
AppStore/screenshots/ipad/03-repo.png added
Binary file not shown.
AppStore/screenshots/ipad/04-feed.png added
Binary file not shown.
AppStore/screenshots/ipad/05-profile.png added
Binary file not shown.
AppStore/screenshots/iphone-6.3/01-dashboard.png added
Binary file not shown.
AppStore/screenshots/iphone-6.3/02-repo.png added
Binary file not shown.
AppStore/screenshots/iphone-6.3/03-mr-list.png added
Binary file not shown.
AppStore/screenshots/iphone-6.3/04-mr-detail.png added
Binary file not shown.
AppStore/screenshots/iphone-6.3/05-diff.png added
Binary file not shown.
AppStore/screenshots/iphone-6.9/01-dashboard.png added
Binary file not shown.
AppStore/screenshots/iphone-6.9/02-repo.png added
Binary file not shown.
AppStore/screenshots/iphone-6.9/03-mr-list.png added
Binary file not shown.
AppStore/screenshots/iphone-6.9/04-mr-detail.png added
Binary file not shown.
AppStore/screenshots/iphone-6.9/05-diff.png added
Binary file not shown.
gitbayUITests/LiveSmokeUITests.swift +14 −3
| @@ -1156,11 +1156,14 @@ extension LiveSmokeUITests { | |||
| 1156 | snap("mr-list") | 1156 | snap("mr-list") |
| 1157 | 1157 | ||
| 1158 | mrNumber.tap() | 1158 | mrNumber.tap() |
| 1159 | // The detail opens at its header; the diff row sits below the | 1159 | // Captured at its header, before scrolling down to the diff row. |
| 1160 | // fold and a List does not build rows it has not shown. | 1160 | XCTAssertTrue(app.cells.firstMatch.waitForExistence(timeout: 15), "MR detail did not open") |
| 1161 | snap("mr-detail") | ||
| 1162 | |||
| 1163 | // The diff row sits below the fold and a List does not build rows | ||
| 1164 | // it has not shown. | ||
| 1161 | let diffRow = app.staticTexts["Diff"].firstMatch | 1165 | let diffRow = app.staticTexts["Diff"].firstMatch |
| 1162 | XCTAssertTrue(scrollTo(diffRow), "MR detail has no diff row") | 1166 | XCTAssertTrue(scrollTo(diffRow), "MR detail has no diff row") |
| 1163 | snap("mr-detail") | ||
| 1164 | 1167 | ||
| 1165 | diffRow.tap() | 1168 | diffRow.tap() |
| 1166 | XCTAssertTrue(app.cells.firstMatch.waitForExistence(timeout: 15)) | 1169 | XCTAssertTrue(app.cells.firstMatch.waitForExistence(timeout: 15)) |
| @@ -1553,6 +1556,14 @@ extension LiveSmokeUITests { | |||
| 1553 | /// deferred. Tabs and a list row work on both. | 1556 | /// deferred. Tabs and a list row work on both. |
| 1554 | func testIPadScreenshotCheckpoint() throws { | 1557 | func testIPadScreenshotCheckpoint() throws { |
| 1555 | signInIfNeeded() | 1558 | signInIfNeeded() |
| 1559 | // The split view's detail is empty until a row is chosen; open the | ||
| 1560 | // first issue or merge request so the shot is not half placeholder. | ||
| 1561 | let item = app.staticTexts | ||
| 1562 | .matching(NSPredicate(format: "label MATCHES '.+/.+[#!][0-9]+'")).firstMatch | ||
| 1563 | XCTAssertTrue(item.waitForExistence(timeout: 20), "dashboard listed no items") | ||
| 1564 | item.tap() | ||
| 1565 | XCTAssertTrue(waitForDisappearance(app.staticTexts["Nothing selected"].firstMatch, timeout: 15), | ||
| 1566 | "dashboard detail did not open") | ||
| 1556 | snap("dashboard") | 1567 | snap("dashboard") |
| 1557 | 1568 | ||
| 1558 | selectTab("Explore") | 1569 | selectTab("Explore") |