Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 33 additions & 3 deletions .jb-ciscripts/PullRequests/UIKitInstrumentedTests.sh
Original file line number Diff line number Diff line change
@@ -1,9 +1,39 @@
./gradlew :compose:ui:ui:linkInstrumentedTestDebugFrameworkUikitSimArm64

cd compose/ui/ui/src/uikitInstrumentedTest/launcher
## Building framework with XCTests
./gradlew :compose:ui:ui:linkInstrumentedTestDebugFrameworkUikitSimArm64

# Force-close all simulators
xcrun simctl shutdown all
killall Simulator
defaults write com.apple.iphonesimulator ConnectHardwareKeyboard -bool false

## Configure simulators to disconnect hardware keyboard (and show on-screen keyboard).
# Get list of all devices
devices=$(xcrun simctl list devices --json)

# This assumes you have jq installed; you can also parse manually if not
if ! command -v jq &> /dev/null; then
echo "Error: jq is not installed"
exit 1
fi

# Export current preferences to PREF_PLIST
PREF_PLIST=~/iphonesimulator.plist
defaults export com.apple.iphonesimulator - > "$PREF_PLIST"

# Adding "ConnectHardwareKeyboard = false" for every simulator
echo "$devices" | jq -r '.devices | to_entries[] | select(.key | startswith("com.apple.CoreSimulator.SimRuntime.iOS")) | .value[] | "\(.udid)"' | while read -r UUID; do
/usr/libexec/PlistBuddy -c "Set :DevicePreferences:$UUID:ConnectHardwareKeyboard false" "$PREF_PLIST" 2>/dev/null || \
/usr/libexec/PlistBuddy -c "Add :DevicePreferences:$UUID:ConnectHardwareKeyboard bool false" "$PREF_PLIST"
done

# Import back the modified plist
defaults import com.apple.iphonesimulator "$PREF_PLIST"

## Launch Simulator app
XCODE_PATH=$(xcode-select -p)
SIMULATOR_PATH="$XCODE_PATH/Applications/Simulator.app/Contents/MacOS/Simulator"
open -a $SIMULATOR_PATH

## Launch tests
cd compose/ui/ui/src/uikitInstrumentedTest/launcher
xcodebuild test -scheme Launcher-CI -project Launcher.xcodeproj -destination 'platform=iOS Simulator,name=iPhone 16'
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ import androidx.compose.ui.unit.toDpRect
import androidx.compose.ui.viewinterop.UIKitView
import androidx.compose.ui.window.KeyboardVisibilityListener
import androidx.compose.ui.window.KeyboardVisibilityObserver
import kotlin.test.Ignore
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertFalse
Expand All @@ -71,7 +70,6 @@ import platform.CoreGraphics.CGRect
import platform.UIKit.UIView
import platform.UIKit.UIViewAnimationOptions

@Ignore // https://youtrack.jetbrains.com/issue/CMP-8133/Fix-keyboard-dependent-instrumented-tests-on-CI
internal class KeyboardInsetsTest {
@Test
fun testImeInsetsAnimationFrames_FocusAboveKeyboard() = runUIKitInstrumentedTest {
Expand Down