* Glorious TDD
* Glorious TDD - Pt. 2
* Update version and CHANGELOG
* create failing test for beta path issue
* fix failing test
* all tests passing
* add chefspec tests
* add with syntax to check actual mv command
* fix beta xcode path again
* Cookstyle linting
* update tests for subsequent betas
* update expectations
* pass tests
* bump
* bump
* change version property to box_version (#201)
* update boxes
* use @version
* bump
* use explaining variable for beta iteration, make regex case insens
* update CL
* update Xcode tests
* remove sierra testing
* Update platform names to include Chef version
* Remove CI triggers for Release and Hotfix
* Update build to use test-kitchen.yml jobs template
* Add ChefSpec, CookStyle, Foodcritic job, and update parameters
* update syntax in ard_test.rb, added mojave test suites, removed test suites for el capitan
* Add deprecation notice for the machine_name resource (#146)
* bump version to 3.0 for release branch
* Drop chef13 support in .kitchen.yml
* Remove machine_name resource in favor of hostname resource in Chef14 (#145)
* update syntax in ard_test.rb, added mojave test suites, removed test suites for el capitan
* update inspec tests
* remove live_stream option
* Remove machine name custom resource and related tests
* Add deprecation notice for the machine_name resource (#146)
* Add spotlight spec test
* Add back el-cap chef14 platform in .kitchen.yml
* Release 3.0 will not support Chef 13 if this change is implemented
* Remove El Capitan support
Linting
- Remove machine_name resource in favor of hostname resource in Chef14 (#145)
* update syntax in ard_test.rb, added mojave test suites, removed test suites for el capitan
* update inspec tests
* remove live_stream option
* Remove machine name custom resource and related tests
* Add deprecation notice for the machine_name resource (#146)
* Add spotlight spec test
* Add back el-cap chef14 platform in .kitchen.yml
* Release 3.0 will not support Chef 13 if this change is implemented
- Remove El Capitan support
- Remove useless assignment in security_test
- Enable password hash unit test
- Markdown linting
- Fix headers
- Remove dollar signs from code blocks that do not include output
- Update 10.13.3 to 10.13.6
* Bump supported Chef version in metadata.rb to 14
* Remove machine_name resource documentation
* Add Azure Pipelines YAML (#185)
* Remove duplicate .gitignore from test cookbook
* Add azure-pipelines YAML with Chef unit/lint job
* Add suites and update kitchen.yml name
* Add pipelines YAML to chefignore
* Add parameter input for kitchenFile
* Remove branch ref for templates repository
* Remove Xcode recipe, tests, and documentation (#187)
* Remove default recipe and fix ChefSpec test for disable_software_updates recipe (#186)
* Delete default recipe and related spec
* Fix failing ChefSpec test for disable_software_updates recipe
* remove default Xcode version attribute
* set test recipe Xcode version
* Remove disable_software_updates recipe, related tests, and documentation (#188)
* update mailmap
* create readme and resource for macos_automatic_software_updates
* remove vagrant.rb
* change name of resource to automatic_software_updates
* add new automatic_software_updates resource
* add spec test for automatic_software_updates
* change name of resource
* group under one action block
* update spec test to check for app_store
* update property names
* update property names in resource
* update property name in spec test
* update value entry to recieve user inputed property
* add block to test both true and false
* Add Action description to software_update.md
* spec tests with seperate it blocks, work in progress
* uploaded some working tests
* update resource to pass spec tests
* make path to software update plist a variable
* lint and beautify
* create app store plist variable
* add test cases for error handling
* add exception handling for spec test cases
* add error handling to resource to check against bad configs
* add disable_software_updates.rb
* update software_updates_test.rb to include all resource values
* make software-update test suite idempotent
* add more content to resource_software_update.md documentation
* update documentation name
* remove old file
* add example to documentation
* remove disable_software_update recipe
* Revert "remove disable_software_update recipe"
This reverts commit e034db13a8dd349ac2dbc2fe2ec1133da650bdca.
* cookstyle
* add integration test for macos_test disable software update recipe
* update integration test for software update with content
* update README.md
* Revert "update README.md"
This reverts commit f1c2f881b7.
* update README.md
* Update documentation/resource_automatic_software_updates.md
Co-Authored-By: v-anshie <v-anshie@microsoft.com>
* Update documentation/resource_automatic_software_updates.md
Co-Authored-By: v-anshie <v-anshie@microsoft.com>
* Update spec/unit/resources/automatic_software_updates_spec.rb
Co-Authored-By: v-anshie <v-anshie@microsoft.com>
* Update spec/unit/resources/automatic_software_updates_spec.rb
Co-Authored-By: v-anshie <v-anshie@microsoft.com>
* Update spec/unit/resources/automatic_software_updates_spec.rb
Co-Authored-By: v-anshie <v-anshie@microsoft.com>
* Update spec/unit/resources/automatic_software_updates_spec.rb
Co-Authored-By: v-anshie <v-anshie@microsoft.com>
* Update spec/unit/resources/automatic_software_updates_spec.rb
Co-Authored-By: v-anshie <v-anshie@microsoft.com>
* Update spec/unit/resources/automatic_software_updates_spec.rb
Co-Authored-By: v-anshie <v-anshie@microsoft.com>
* Update spec/unit/resources/automatic_software_updates_spec.rb
Co-Authored-By: v-anshie <v-anshie@microsoft.com>
* Update spec/unit/resources/automatic_software_updates_spec.rb
Co-Authored-By: v-anshie <v-anshie@microsoft.com>
* Update spec/unit/resources/automatic_software_updates_spec.rb
Co-Authored-By: v-anshie <v-anshie@microsoft.com>
* update spec test plist path entries with variable for cleaner code -Mark Merin
* remove duplicate test file with bad InSpec syntax
* fix indentation, update wording, and add inline image of the preferences
* update wording in documentation
* Replace ard resource with remote_management (#191)
* change class name from ARD to RemoteManagement
* update resource name in test
* update resource name
* update method names
* remote unused actions
* make RemoteManagement a class, static methods
* create remote_management resource to replace ard
* remove configuration action, create contexts to check idempotence
* update test recipe to be more explicit
* update spec to use shared examples and contexts
* add full privs mask to configured? guard
* remove old library spec
* update docs
* remove duplicate conditional checking
* refactor plist to plist_content
* refactor configured? to configured_for_all_users_and_privileges?
* remove parens
* update build yaml to include software-update test suite
* update test suite name in kitchen.yml
* update changelog with 3.0 changes
* fix run_list recipe to look in macos_test folder for recipe
* update run_list for software-updates test suite
* update azure-pipelines.yml test suites list (#192)
* update azure-pipelines.yml test suites list
* Fix test recipe name for software_updates suite
* Update InSpec output file name to match azure pipelines template
* Remove Chef version from platform name
* Remove chefVersion from the matrix strategy
* Revert chefVersion removal from matrix strategy
* Revert "Revert chefVersion removal from matrix strategy"
This reverts commit ac03f78bca.
* fix keychain creation guard preventing multi-converge from passing
* add exclude for url suite
* Revert "add exclude for url suite"
This reverts commit b5ea622077.
* add guard in azure-pipelines.yml for xcode version on sierra platform
* Revert "add guard in azure-pipelines.yml for xcode version on sierra platform"
This reverts commit 5a9460d7bc.
* don't exclude sierra from xcode testing
* add '9.2' version to sierra url install
* update build badge in README.md
* fix typo
* add fix for keychain to changelog
* add removal of machine_name to changelog
* fix caps
* move spotlight resource test to resource folder
* note spotlight test additions
* note removal of default attribute for xcode version
* remove dup lines
* add changelog updates
* add mock data back
* add more mock data back
* Update resource doc links
- Fix broken link for renamed resource
- Remove link to machine_name documentation
- Update formatting to match Chef's resource links
* update xcode doc with auth steps
* officially unofficial
* remove extra lines between properties to match other resources
* update CHANGELOG with correct El Capitan prefix
* install rb-readline gem for pry compatibility with unit test guard
https://github.com/pry/pry/issues/1577
* bump version to 2.10.1
* allow machine_name resource properties (except computer_name) to handle nil states
* update changelog with bug fix change details
* modify test recipe to set hostname to nil without using the machine_name custom resource
* account for nil values in machine_name resource properties
* bump version in changelog
* use a ternary statement instead of if else
* Bump cookbook version in metadata.rb
* Add `command_line_tools` resource (#176)
* Update kitchen.yml to use 10.14.2 box
* Add command_line_tools resource
* Remove installed? check in command_line_tools library
* Add command_line_tools suite
* Add guard on execute block for command line tools
- Add ChefSpec tests for command_line_tools
- Update unnecessary tests from xcode_spec for command line tools resource
* Cookstyle fixes
* Add documentation for command_line_tools resource
* Add link to Command Line Tools doc in README
* Update documentation/resource_command_line_tools.md
Co-Authored-By: ehanlon <eahanl@microsoft.com>
* Bump default Xcode version in attributes file (#178)
* expect correct hash for string "correct-horse-battery-staple" (#177)
hash was originally for "correct-horse-battery-staplesudo"
* Update CHANGELOG
* New Xcode Property: download_url (#180)
* version bump
* Add functionality for --url support
xcode resource has a new property called download_url.
Most of the changes were done in xcversion which included a new
routine called xcode_install_options.
* fix rspec errors as Xcode.new was given one less argument
* add spec tests to check download_url setting
* add spec tests to check download_url setting
* add spec test to test for the original behavior if download url is left blank
* update xcode documentation
* update changelog
* Update libraries/xcversion.rb
Rename xcode_install_options to download_url_option
Co-Authored-By: mjmerin <33106688+mjmerin@users.noreply.github.com>
* Update libraries/xcversion.rb
Rename xcode_install_options to download_url_option
Co-Authored-By: mjmerin <33106688+mjmerin@users.noreply.github.com>
* update routine name
* update xcode docs to provide an example of installing xcode from a local url
* Add missing '=' for --url
* Add separate integration tests for installing Xcode from Apple or from URL
* Validate download_url property to prevent requirement for Apple Dev creds to be provided
* Update ChefSpec tests
* move XCVersion expectations to their own file
* change version tests to cover apple to semantic conversion expectations
* update formatting
* remove nil guard since the resource default is an empty string
* add another test for ignoring Apple version
* update test version
* update Xcode controls
* Only run xcode_from_apple suite on Mojave
* Update Inspec reporter
* Ensure suite names have dashes instead of underscores
* require some sugar
* add method to determine platform compatibility for xcode object
* add platform-specific expectations to xcode spec
* raise exception based on compatibility method
* don't require that Xcode be initialized with empty URL string
* unchain version
* don't run Xcode URL install for Sierra
* Apply suggestions from code review
Co-Authored-By: ehanlon <eahanl@microsoft.com>
* bump version
* Fix#63 (#152)
* refactor screensaver class disabled method
* fix indentation
* delete some unit tests
* don't smoke test UID when testing user resource (#153)
* remove uid testing
* remove multi-converge, added to idempotency branch
* Add multi-converge testing for all suites, idempotency for select suites (#155)
* remove uid testing
* add multi-converge for all test recipes
* remove sleep
* just see if multi-converges pass
* add idempotency testing for specific suites
* add guard in spotlight test recipe
* guard against last test disk
* add a case if the index is in an unknown state
* add a sleep to allow indexing server to chill out
* add a 3rd converge
* create volume object in guard
* 2 converges for now
* increase sleep to allow indexing state to settle down
* enforce idempotency for spotlight
* add guard to test recipe item
* fix bug
* remove idempotency testing for xcode
* set three times
* Enforce idempotency for default ARD resource actions (#157)
* remove uid testing
* add multi-converge for all test recipes
* remove sleep
* just see if multi-converges pass
* add idempotency testing for specific suites
* add guard in spotlight test recipe
* guard against last test disk
* add a case if the index is in an unknown state
* add a sleep to allow indexing server to chill out
* add a 3rd converge
* create volume object in guard
* 2 converges for now
* increase sleep to allow indexing state to settle down
* enforce idempotency for spotlight
* add guard to test recipe item
* fix bug
* remove idempotency testing for xcode
* set three times
* add guard for ARD activation
* implement very basic guards
* add some unit tests for the ARD module
* remove some whitespace
* fix stub
* demystify magic mask string
* Feature/fix doc links (#158)
* update ard resource documentation
* more updates to ard resource docuemntation
* update certificate resource doccumentation
* update keychain resource doc
* update plist doc
* update spotlight resource doc
* update xcode resource doc
* change link location and fix syntax mistake
* add 2.7 changes to changelog (#159)
* add 2.7 changes to changelog
* add link to broken links issue
* add more details to changelog
* update CL
* Update CHANGELOG.md
Co-Authored-By: jazaval <jazava@microsoft.com>
* Update CHANGELOG.md
Co-Authored-By: jazaval <jazava@microsoft.com>
* remove whitespace
* grammar fix
Co-Authored-By: jazaval <jazava@microsoft.com>
* grammar fix
Co-Authored-By: jazaval <jazava@microsoft.com>
* grammar fix
Co-Authored-By: jazaval <jazava@microsoft.com>
* grammar fix
Co-Authored-By: jazaval <jazava@microsoft.com>
* added 2.3 changes to changelog
* added more to changelog
* added more to the changelog
* version bump
* added smoke test for ard.rb resource
* updated xcode version to 10.0 in default.rb
* update syntax in ard_test.rb, added mojave test suites, removed test suites for el capitan
* update to test cookbook xcode.rb to include mojave
* update xcode.rb for mojave support
* use default xcode recipe for testing
* regex for platforms supporting the current Xcode
* add remote access suite, create test recipe for ard, implement smoke test
* update ard resource default action, and control
* add el cap
* update inspec tests
* improve the ARD smoke test
* Use more meaningful values instead of magic numbers (#139)
* - Add definitions for each of the kickstarter bits, except for observe_only bit 8
- Use the definitions for the test
* Respond to PR comments and clean up inspec matchers
* remove unneeded tests
* add a test for activation check
* update title and description of remote-control control
* remove live_stream option
* update to changelog (#140)
* updated CHANGELOG.md with 1.9-1.13
* add 1.6-1.8 to changelog
* add 1.2-1.5 to changelog
* remove extra lines and 2.5 template
* remove extra 2.4 header
* Prevent additional Command Line Tools from appearing in softwareupdate (#143)
* delete sentinel file after CLT install
* update spec with output from Mojave
* update expectation
* add method to determine macos version
* refactor available method name
* add method to install latest platform specific clt
* add integration test to verify bug 142 is resolved
* run new control
* add spec test for high sierra
* detect platform specific CLT with the highest Xcode version
* stub swu output instead of available
* test and expect Xcode 10 instead of 9.4.1
* use new xcode list from Apple, fix find and replace typo
* Add deprecation notice for the machine_name resource (#146)
* updated changelog
* update high sierra boxes to latest (#148)
* fix foodcritic issue 009 with spotlight resource
* remove xcode-beta suite. see ya next year, WWDC
* update changelog with cinsistency
* update mojave box version
* bump version
* update Xcode documentation
* Implement 'path' property for Xcode (#136)
* first pass at supporting path property
* clarify path_hash to more descriptive version_path_map
* refactor path method to give valid output before xcode is done
* add chefspec for Xcode resource
* fix ShellOutNotStubbed error in SWU recipe spec
* unify smoke tests for beta and non-beta xcodes
* refactor CLT install, move guard into CLT class and update spec to pass
* update spec tests to separate concerns with xcversion output and authentication
* update classes and resources to pass tests
* fix inclusions
* include entire MacOS module
* specify permissions for CLT sentinel file
* remove laziness of commandlinetools detection, use FileUtils to manage
* update the spec to have FileUtils handle sentinel
* exclude non-beta compatible platforms
* restore xcode beta smoke tests
* Revert "exclude non-beta compatible platforms"
This reverts commit 4851ae1c71.
* update changelog
* minor refactor
* split out the mdutil -s command for testability
* add additional functions that check that the server is disabled and a toggle function
* move MetadataUtil object outside the execute block so that it can be used by multiple execute blocks such as the new one used to enable the server
* modify the integration test to turn off the server as its first action
* update spec tests for the new possible state
* Responding to code review comments
- Removed the additional state in mdutil_possible_state
- Shift the mdutil output parsing to server_disabled
- Make mdutil_output a attr_reader so that we can now remove
the volume parameter
* remove the excess parameter
* remove un-needed spec test for the additional possible state
* add new box names to kitchen.yml
* remove always install strategy since our boxes are clean now
* don't run APFS commands on new box
* make disk image volumes instead of partitions
* update base boxes (#119)
* add new box names to kitchen.yml
* remove always install strategy since our boxes are clean now
* don't run APFS commands on new box
* make disk image volumes instead of partitions
* Fix for Issue #107: User Deletion (#117)
* delete user fix. #{user} is never actually used. Also used an array for command
* add a seperate test suite for testing user deletion
* Add a seperate recipe for user deletion that does not use macos_user resource for user creation
* Use password to unlock keychain (#120)
* Fix for Issue #96: Hidden Users (#118)
* add functionality for hidden user support
* Add a new user called griffin to the new_user recipe for hidden user testing
* Add test suite for hidden user testing
* add some documentation
* Respond to code review comments
1. Update user hiding execute block to check for IsHidden as a guard
2. Don't use mv and instead use FileUtils
3. Change hidden property to accept false or true, right now we ignore false
4. Fix integration test to look for griffin's home in var
* bump version
* update latest stable version of Xcode
* update beta version of Xcode
* Use explicit box versions in kitchen.yml
* update smoke tests
* bump version
* update hostname property to comply with FC115 (#112)
* Adding guard config and rake tasks for testing convenience (#113)
Here's the list of rake tasks:
```
rake test:all # Run all tests in the following order: Lint => Critic => Unit => Integration
rake test:cleanup # Cleanup various artificats like lockfiles and running kitchen instances
rake test:critic # Run Chef's cookbook linter, foodcritic
rake test:deploy # Apply the cookbook to the running kitchen instances
rake test:guard # Start `guard` for continuous testing
rake test:integration # Run the integration tests start to finish
rake test:lint # Run Chef's code-style linter, cookstyle
rake test:lintfix # Run Chef's linter and attempt to auto-correct offenses
rake test:provision # Spin up the kitchen instances for integration testing
rake test:unit # Run the unit tests
rake test:verify # Run the integration tests against already running kitchen instances
```
The Guardfile config is configured to run any library, recipe, or custom resource file's corresponding unit test(s) under `spec/unit/` whenever a file change is detected. Just run `bundle install && rake test:guard` to install the guard gem and start watching for changes.
* update InSpec control filenames (#114)
* split up keychain resource into its own suite
* Modify security library for new keychain resource
Create new keychain resource
* test recipe for keychain resource
* preliminary documentation for keychain resource
* Add smoke and inspec tests
* cookstyle -a fix
* Add basic integration tests
- macOS 10.11.6 stores the keychain differently than 10.12 or 10.13.
* Get test to pass with correct way of checking for OS version
* test code for the new keychain resource
* simplify down to basic keychain support for now
* Update readmes
* edit documentation on the keychain resource
* Fix up integration and tests and recipes
* Remove default and login keychain capabilities for future use
* Remove unneeded routines
* Fix for Issue 85
When query_type is 'read', modify our regex to do an exact match
on expected_value. Proceed as it was, when not.
* Refactor: Introduce two new classes Power and ScreenSaver
* Deal with some consequences of the systemsetup refactor for Rspec tests
* Refactor of systemsetup library
- Put machine_model and virtualization_systems in initialize method
- Remove power_button_model and replace with desktop? and portable?
desktop?: Verfiies that the machine_model is either a MacMini, MacPro
or iMac
portable?: Verifies that machine_model is a Macbook
* replace guard of power_button_model to desktop?
* Fix failing spec tests
* Cleanup commented out code and make sure virtualization_systems uses class variables
* Introduce new Environment class
* Check for Chef.node.nil instead of the attribute for FormFactor
Change desktop? to use machine_model instead of Chef.node['hardware']['machine_model']
* spec test testing FormFactor and ScreenSaver classes
* fix check for Chef.node.nil?
* Fix up ScreenSaver class to initialize the user on object creation. This makes cleaner rspec tests for the query routine
* add more ScreenSaver class unit tests
* remove unused spec tests
* Add spec tests for Environment class in systemsetup library
* add readme for macos_user resource
* Add missing macos_user documentation
Update README.md to point to new macos_user documentation
* Fix typo
* Change Macos to macOS
* Skip disk sleep integration tests, update README
- We are skipping the disk sleep tests temporarily since there have been
intermittent failures with that setting in particular. We think it may
be a race condition or potentially a bug with `kitchen test`
- Update the README to include the parallel CI badge -- the current
build definition tests the entire kitchen test matrix in parallel
- Update the README with the correct Xcode recipe attributes
* add multiple converge to power management suite
* don't skip the disk sleep tests
* - Use .empty? checks
- Change property_is_set? to new_resource.property_is_set.
* make disk sleep Never the default
* update pmset smoke
* Show nightly master build badge