@@ -452,196 +452,6 @@ def test_applyMacCatalystPatches_correctlyAppliesNecessaryPatches
452452 assert_equal ( user_project_mock . save_invocation_count , 1 )
453453 end
454454
455- # ================================= #
456- # Test - Apply Xcode 15 Patch #
457- # ================================= #
458- def test_applyXcode15Patch_whenXcodebuild14_correctlyAppliesNecessaryPatch
459- # Arrange
460- XcodebuildMock . set_version = "Xcode 14.3"
461- first_target = prepare_target ( "FirstTarget" )
462- second_target = prepare_target ( "SecondTarget" )
463- third_target = TargetMock . new ( "ThirdTarget" , [
464- BuildConfigurationMock . new ( "Debug" , {
465- "GCC_PREPROCESSOR_DEFINITIONS" => '$(inherited) "SomeFlag=1" '
466- } ) ,
467- BuildConfigurationMock . new ( "Release" , {
468- "GCC_PREPROCESSOR_DEFINITIONS" => '$(inherited) "SomeFlag=1" '
469- } ) ,
470- ] , nil )
471-
472- user_project_mock = UserProjectMock . new ( "/a/path" , [
473- prepare_config ( "Debug" ) ,
474- prepare_config ( "Release" ) ,
475- ] ,
476- :native_targets => [
477- first_target ,
478- second_target
479- ]
480- )
481- pods_projects_mock = PodsProjectMock . new ( [ ] , { "hermes-engine" => { } } , :native_targets => [
482- third_target
483- ] )
484- installer = InstallerMock . new ( pods_projects_mock , [
485- AggregatedProjectMock . new ( user_project_mock )
486- ] )
487-
488- # Act
489- user_project_mock . build_configurations . each do |config |
490- assert_nil ( config . build_settings [ "OTHER_LDFLAGS" ] )
491- end
492-
493- ReactNativePodsUtils . apply_xcode_15_patch ( installer , :xcodebuild_manager => XcodebuildMock )
494-
495- # Assert
496- user_project_mock . build_configurations . each do |config |
497- assert_equal ( "$(inherited) " , config . build_settings [ "OTHER_LDFLAGS" ] )
498- end
499-
500- # User project and Pods project
501- assert_equal ( 2 , XcodebuildMock . version_invocation_count )
502- end
503-
504- def test_applyXcode15Patch_whenXcodebuild15_1_does_not_apply_patch
505- # Arrange
506- XcodebuildMock . set_version = "Xcode 15.1"
507- first_target = prepare_target ( "FirstTarget" )
508- second_target = prepare_target ( "SecondTarget" )
509- third_target = TargetMock . new ( "ThirdTarget" , [
510- BuildConfigurationMock . new ( "Debug" , {
511- "GCC_PREPROCESSOR_DEFINITIONS" => '$(inherited) "SomeFlag=1" '
512- } ) ,
513- BuildConfigurationMock . new ( "Release" , {
514- "GCC_PREPROCESSOR_DEFINITIONS" => '$(inherited) "SomeFlag=1" '
515- } ) ,
516- ] , nil )
517-
518- user_project_mock = UserProjectMock . new ( "/a/path" , [
519- prepare_config ( "Debug" ) ,
520- prepare_config ( "Release" ) ,
521- ] ,
522- :native_targets => [
523- first_target ,
524- second_target
525- ]
526- )
527- pods_projects_mock = PodsProjectMock . new ( [ ] , { "hermes-engine" => { } } , :native_targets => [
528- third_target
529- ] )
530- installer = InstallerMock . new ( pods_projects_mock , [
531- AggregatedProjectMock . new ( user_project_mock )
532- ] )
533-
534- # Act
535- user_project_mock . build_configurations . each do |config |
536- assert_nil ( config . build_settings [ "OTHER_LDFLAGS" ] )
537- end
538-
539- ReactNativePodsUtils . apply_xcode_15_patch ( installer , :xcodebuild_manager => XcodebuildMock )
540-
541- # Assert
542- user_project_mock . build_configurations . each do |config |
543- assert_equal ( "$(inherited) " , config . build_settings [ "OTHER_LDFLAGS" ] )
544- end
545-
546- # User project and Pods project
547- assert_equal ( 2 , XcodebuildMock . version_invocation_count )
548- end
549-
550- def test_applyXcode15Patch_whenXcodebuild15_correctlyAppliesNecessaryPatch
551- # Arrange
552- XcodebuildMock . set_version = "Xcode 15.0"
553- first_target = prepare_target ( "FirstTarget" )
554- second_target = prepare_target ( "SecondTarget" )
555- third_target = TargetMock . new ( "ThirdTarget" , [
556- BuildConfigurationMock . new ( "Debug" , {
557- "GCC_PREPROCESSOR_DEFINITIONS" => '$(inherited) "SomeFlag=1" '
558- } ) ,
559- BuildConfigurationMock . new ( "Release" , {
560- "GCC_PREPROCESSOR_DEFINITIONS" => '$(inherited) "SomeFlag=1" '
561- } ) ,
562- ] , nil )
563-
564- user_project_mock = UserProjectMock . new ( "/a/path" , [
565- prepare_config ( "Debug" ) ,
566- prepare_config ( "Release" ) ,
567- ] ,
568- :native_targets => [
569- first_target ,
570- second_target
571- ]
572- )
573- pods_projects_mock = PodsProjectMock . new ( [ ] , { "hermes-engine" => { } } , :native_targets => [
574- third_target
575- ] )
576- installer = InstallerMock . new ( pods_projects_mock , [
577- AggregatedProjectMock . new ( user_project_mock )
578- ] )
579-
580- # Act
581- user_project_mock . build_configurations . each do |config |
582- assert_nil ( config . build_settings [ "OTHER_LDFLAGS" ] )
583- end
584-
585- ReactNativePodsUtils . apply_xcode_15_patch ( installer , :xcodebuild_manager => XcodebuildMock )
586-
587- # Assert
588- user_project_mock . build_configurations . each do |config |
589- assert_equal ( "$(inherited) -Wl -ld_classic" , config . build_settings [ "OTHER_LDFLAGS" ] )
590- end
591-
592- # User project and Pods project
593- assert_equal ( 2 , XcodebuildMock . version_invocation_count )
594- end
595-
596- def test_applyXcode15Patch_whenXcodebuild14ButProjectHasSettings_correctlyRemovesNecessaryPatch
597- # Arrange
598- XcodebuildMock . set_version = "Xcode 14.3"
599- first_target = prepare_target ( "FirstTarget" )
600- second_target = prepare_target ( "SecondTarget" )
601- third_target = TargetMock . new ( "ThirdTarget" , [
602- BuildConfigurationMock . new ( "Debug" , {
603- "GCC_PREPROCESSOR_DEFINITIONS" => '$(inherited) "SomeFlag=1" '
604- } ) ,
605- BuildConfigurationMock . new ( "Release" , {
606- "GCC_PREPROCESSOR_DEFINITIONS" => '$(inherited) "SomeFlag=1" '
607- } ) ,
608- ] , nil )
609-
610- debug_config = prepare_config ( "Debug" , { "OTHER_LDFLAGS" => "$(inherited) -Wl -ld_classic " } )
611- release_config = prepare_config ( "Release" , { "OTHER_LDFLAGS" => "$(inherited) -Wl -ld_classic " } )
612-
613- user_project_mock = UserProjectMock . new ( "/a/path" , [
614- debug_config ,
615- release_config ,
616- ] ,
617- :native_targets => [
618- first_target ,
619- second_target
620- ]
621- )
622- pods_projects_mock = PodsProjectMock . new ( [ debug_config . clone , release_config . clone ] , { "hermes-engine" => { } } , :native_targets => [
623- third_target
624- ] )
625- installer = InstallerMock . new ( pods_projects_mock , [
626- AggregatedProjectMock . new ( user_project_mock )
627- ] )
628-
629- # Act
630- user_project_mock . build_configurations . each do |config |
631- assert_equal ( "$(inherited) -Wl -ld_classic " , config . build_settings [ "OTHER_LDFLAGS" ] )
632- end
633-
634- ReactNativePodsUtils . apply_xcode_15_patch ( installer , :xcodebuild_manager => XcodebuildMock )
635-
636- # Assert
637- user_project_mock . build_configurations . each do |config |
638- assert_equal ( "$(inherited)" , config . build_settings [ "OTHER_LDFLAGS" ] )
639- end
640-
641- # User project and Pods project
642- assert_equal ( 2 , XcodebuildMock . version_invocation_count )
643- end
644-
645455 # ==================================== #
646456 # Test - Set build setting #
647457 # ==================================== #
0 commit comments