test cases
diff --git a/erpnext/accounts/doctype/pos_profile/test_pos_profile.py b/erpnext/accounts/doctype/pos_profile/test_pos_profile.py
index 62274a3..9c6a114 100644
--- a/erpnext/accounts/doctype/pos_profile/test_pos_profile.py
+++ b/erpnext/accounts/doctype/pos_profile/test_pos_profile.py
@@ -5,8 +5,47 @@
 
 import frappe
 import unittest
-
-# test_records = frappe.get_test_records('POS Profile')
+from erpnext.stock.get_item_details import get_pos_profile
+from erpnext.accounts.doctype.sales_invoice.pos import get_items_list, get_customers_list
 
 class TestPOSProfile(unittest.TestCase):
-	pass
+	def test_pos_profile(self):
+		make_pos_profile()
+
+		pos_profile = get_pos_profile("_Test Company") or {}
+		if pos_profile:
+			doc = frappe.get_doc("POS Profile", pos_profile.get("name"))
+			doc.append('item_groups', {'item_group': '_Test Item Group'})
+			doc.append('customer_groups', {'customer_group': '_Test Customer Group'})
+			doc.save()
+
+			items = get_items_list(doc)
+			customers = get_customers_list(doc)
+
+			products_count = frappe.db.sql(""" select count(name) from tabItem where item_group = '_Test Item Group'""", as_list=1)
+			customers_count = frappe.db.sql(""" select count(name) from tabCustomer where customer_group = '_Test Customer Group'""")
+
+			self.assertEquals(len(items), products_count[0][0])
+			self.assertEquals(len(customers), customers_count[0][0])
+
+		frappe.db.sql("delete from `tabPOS Profile`")
+
+def make_pos_profile():
+	pos_profile = frappe.get_doc({
+		"company": "_Test Company",
+		"cost_center": "_Test Cost Center - _TC",
+		"currency": "INR",
+		"doctype": "POS Profile",
+		"expense_account": "_Test Account Cost for Goods Sold - _TC",
+		"income_account": "Sales - _TC",
+		"name": "_Test POS Profile",
+		"naming_series": "_T-POS Profile-",
+		"selling_price_list": "_Test Price List",
+		"territory": "_Test Territory",
+		"warehouse": "_Test Warehouse - _TC",
+		"write_off_account": "_Test Write Off - _TC",
+		"write_off_cost_center": "_Test Write Off Cost Center - _TC"
+	})
+
+	if not frappe.db.exists("POS Profile", "_Test POS Profile"):
+		pos_profile.insert()
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/sales_invoice/pos.py b/erpnext/accounts/doctype/sales_invoice/pos.py
index ec30cb0..11c68a3 100644
--- a/erpnext/accounts/doctype/sales_invoice/pos.py
+++ b/erpnext/accounts/doctype/sales_invoice/pos.py
@@ -133,6 +133,8 @@
 	cond = "1=1"
 	item_groups = []
 	if pos_profile.get('item_groups'):
+		# Get items based on the item groups defined in the POS profile
+
 		cond = "item_group in (%s)"%(', '.join(['%s']*len(pos_profile.get('item_groups'))))
 		item_groups = [d.item_group for d in pos_profile.get('item_groups')]
 
@@ -143,6 +145,8 @@
 	cond = "1=1"
 	customer_groups = []
 	if pos_profile.get('customer_groups'):
+		# Get customers based on the customer groups defined in the POS profile
+
 		cond = "customer_group in (%s)"%(', '.join(['%s']*len(pos_profile.get('customer_groups'))))
 		customer_groups = [d.customer_group for d in pos_profile.get('customer_groups')]
 
diff --git a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
index 511eeaa..c4f275a 100644
--- a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
@@ -7,6 +7,7 @@
 from frappe.utils import nowdate, add_days, flt, nowdate
 from erpnext.stock.doctype.stock_entry.test_stock_entry import make_stock_entry, get_qty_after_transaction
 from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import unlink_payment_on_cancel_of_invoice
+from erpnext.accounts.doctype.pos_profile.test_pos_profile import make_pos_profile
 from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import set_perpetual_inventory
 from erpnext.exceptions import InvalidAccountCurrency, InvalidCurrency
 from erpnext.stock.doctype.serial_no.serial_no import SerialNoWarehouseError
@@ -467,7 +468,7 @@
 
 	def test_pos_gl_entry_with_perpetual_inventory(self):
 		set_perpetual_inventory()
-		self.make_pos_profile()
+		make_pos_profile()
 
 		self._insert_purchase_receipt()
 		pos = copy.deepcopy(test_records[1])
@@ -486,7 +487,7 @@
 
 	def test_pos_change_amount(self):
 		set_perpetual_inventory()
-		self.make_pos_profile()
+		make_pos_profile()
 
 		self._insert_purchase_receipt()
 		pos = copy.deepcopy(test_records[1])
@@ -508,7 +509,7 @@
 
 		set_perpetual_inventory()
 
-		self.make_pos_profile()
+		make_pos_profile()
 		self._insert_purchase_receipt()
 
 		pos = copy.deepcopy(test_records[1])
@@ -572,26 +573,6 @@
 
 		frappe.db.sql("delete from `tabPOS Profile`")
 
-	def make_pos_profile(self):
-		pos_profile = frappe.get_doc({
-			"company": "_Test Company",
-			"cost_center": "_Test Cost Center - _TC",
-			"currency": "INR",
-			"doctype": "POS Profile",
-			"expense_account": "_Test Account Cost for Goods Sold - _TC",
-			"income_account": "Sales - _TC",
-			"name": "_Test POS Profile",
-			"naming_series": "_T-POS Profile-",
-			"selling_price_list": "_Test Price List",
-			"territory": "_Test Territory",
-			"warehouse": "_Test Warehouse - _TC",
-			"write_off_account": "_Test Write Off - _TC",
-			"write_off_cost_center": "_Test Write Off Cost Center - _TC"
-		})
-
-		if not frappe.db.exists("POS Profile", "_Test POS Profile"):
-			pos_profile.insert()
-			
 	def test_sales_invoice_gl_entry_with_perpetual_inventory_no_item_code(self):
 		set_perpetual_inventory()